java.lang.NoClassDefFoundError:无法初始化类javax.media.jai.JAI

好奇心:

最近,我开始了我的第一个程序,在其中我还使用JAI- Java高级图像1_1_2_01与JDK 1_7 GeoTools。它工作得很好,直到我说支持GeoTiff罐我发现了以下错误

异常在线程“主要” java.lang.NoClassDefFoundError:无法初始化类javax.media.jai.JAI在org.geotools.gce.geotiff.GeoTiffReader.read(GeoTiffReader.java:607)在com.rgb.PixelExtractor.extract (PixelExtractor.java:55)在com.rgb.RGBSpliter.main(RGBSpliter.java:136)

其代码如下

 public void extract(File f, String name, String date) throws Exception {
 ParameterValue<OverviewPolicy> policy = AbstractGridFormat.OVERVIEW_POLICY
        .createValue();
 policy.setValue(OverviewPolicy.IGNORE);

 // this will basically read 4 tiles worth of data at once from the disk...
 ParameterValue<String> gridsize = AbstractGridFormat.SUGGESTED_TILE_SIZE.createValue();
 //gridsize.setValue(512 * 4 + "," + 512);

 // Setting read type: use JAI ImageRead (true) or ImageReaders read methods (false)
 ParameterValue<Boolean> useJaiRead = AbstractGridFormat.USE_JAI_IMAGEREAD.createValue();
 useJaiRead.setValue(true);

 //reader.read(new GeneralParameterValue[] { policy, gridsize, useJaiRead });
 // The line that throws error
 GridCoverage2D image
        = new GeoTiffReader(f).read(new GeneralParameterValue[]{policy, gridsize, useJaiRead});
 Rectangle2D bounds2D = image.getEnvelope2D().getBounds2D();
 bounds2D.getCenterX();
// calculate zoom level for the image
GridGeometry2D geometry = image.getGridGeometry();



BufferedImage img = ImageIO.read(f);
// ColorModel colorModel = img.getColorModel(      
WritableRaster raster = img.getRaster();

int numBands = raster.getNumBands();

int w = img.getWidth();
int h = img.getHeight();
outer:
for (int i = 0; i < w; i++) {//width...

  for (int j = 0; j < h; j++) {

    double[] latlon = geo(geometry, i, j);
    double lat = latlon[0];
    double lon = latlon[1];

    Double s = 0d;

    String originalBands = "";
    for (int k = 0; k < numBands; k++) {
      double d = raster.getSampleDouble(i, j, k);
      originalBands += d + ",";
      s += d;
    }

    originalBands = originalBands.substring(0, originalBands.length() - 1);
    if (s.compareTo(0d) == 0) {
      continue;
    }
    String geoHash = GeohashUtils.encodeLatLon(lat, lon);
    //here do something with the bands, lat, long, geohash, etc....

    }

   }

   }

  private static double[] geo(GridGeometry2D geometry, int x, int y) throws Exception {

  //int zoomlevel = 1;
  Envelope2D pixelEnvelop = geometry.gridToWorld(new GridEnvelope2D(x, y, 1, 1));

  // pixelEnvelop.getCoordinateReferenceSystem().getName().getCodeSpace();
  return new double[]{pixelEnvelop.getCenterY(), pixelEnvelop.getCenterX()};

 }

 }

JDK罐

JDK图像罐子

其他JAR

第1部分

第2部分

我还添加了类路径变量GeoTools罐

类路径

编辑:

我JAI工作不GeoTools整合,但是当我添加gt-geotiff-14.4.jar它尝试添加JAI-core-1.1.3.jar与冲突,jai-core.jar在我的JDK 1.7。所以我删除JAI-core-1.1.3.jar和相关的罐子,但它仍然给了我同样的错误。

好奇心:

最后,它工作时,我删除的GeoTIFF jai-core-1.1.3.jarjai-codec-1.1.3.jar以及jai-imageio-1.1.jar文件和JAI-EXT的增加了新的类GT-实用工具类文件。我刚刚从GitHub复制并添加到我的项目的src。GT-效用是其缺少一个。将罐也发生冲突。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

java.lang.NoClassDefFoundError:无法初始化类org.powermock.modules.junit4.rule.PowerMockRule

java.lang.NoClassDefFoundError:无法初始化类org.bytedeco.javacpp.avutil

JAI Tiff到JPEG的转换问题

java.lang.NoClassDefFoundError:无法初始化类java.awt.Toolkit

在哪里可以下载Jai和Jai-imageio?

java.lang.NoClassDefFoundError:无法初始化类XXX

JAI ImageIO的纯Java替代品,用于检测CMYK图像

JAI供应商名称== null

使用Java JAI缩放图像

无法运行或jai_imageio或ImageIO.getImageReadersByFormatName无法获取对象

javax.media.jai类的公共下载?

Java / JAI-保存灰度图像

原因:java.lang.NoClassDefFoundError:无法初始化类com.jayway.restassured.RestAssured

java.lang.NoClassDefFoundError:无法初始化类xxx.xxx.xxx.HibernateUtil

春季:java.lang.NoClassDefFoundError:无法初始化类

我从Maven Central下载javax.media.jai_core:1.1.3时遇到错误

java.lang.NoClassDefFoundError:无法初始化com.datastax.driver.core.Cluster类

Zeppelin java.lang.NoClassDefFoundError:无法初始化类org.apache.spark.rdd.RDDOperationScope $

关于java.lang.NoClassDefFoundError:无法初始化类org.xerial.snappy.Snappy

SBT无法解决OSgeo / JAI Maven依赖关系

用于RawImageInputStream的JAI ImageIO NoClassDefFoundError

java.lang.NoClassDefFoundError:无法初始化com.googlecode.objectify.ObjectifyService类

Corda-无法初始化主类胶囊(引起原因:java.lang.NoClassDefFoundError:java / lang / instrument / Instrumentation)

原因:java.lang.NoClassDefFoundError:无法初始化类javassist.util.proxy.DefineClassHelper

如何解决“无法读取JPEG2000图像:未安装Java Advanced Imaging(JAI)图像I / O工具”

java.lang.NoClassDefFoundError:无法初始化类org.springframework.mail.javamail.SmartMimeMessage

java.lang.NoClassDefFoundError:无法初始化类sun.nio.ch.FileChannelImpl

java.lang.NoClassDefFoundError:无法初始化类org.apache.commons.logging.LogFactory

Java JAI-错误:操作“ Mosaic”的一个工厂失败