关于java使用geotools中的GeoTiffReader读取tif图像时报错 -问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

关于java使用geotools中的GeoTiffReader读取tif图像时报错

因为相信,所以看见。 2020-05-27 10:02:01 51

"

关于java使用geotools中的GeoTiffReader读取tif图像时报错:找不到类 javax.media.jai.PlanarImage 的错误
代码放上:

import java.io.File; import org.geotools.coverage.grid.GridCoverage2D; import org.geotools.gce.geotiff.GeoTiffReader; import org.geotools.geometry.Envelope2D; import org.opengis.referencing.crs.CoordinateReferenceSystem;

public class ImageExt { public static void main(String[] args) { GetImageExt("E:\database\overview\\J46\J46D001001.tif"); } public static String GetImageExt(String strImageUrl){ String strExtent = ""; try { String ImageUrl=strImageUrl.replace("\", "\\");; File ImageFile=new File(ImageUrl); GeoTiffReader reader=new GeoTiffReader(ImageFile); GridCoverage2D coverage = reader.read(null); CoordinateReferenceSystem crs = coverage.getCoordinateReferenceSystem2D(); Envelope2D coverageEnvelope = coverage.getEnvelope2D(); double coverageMinX = coverageEnvelope.getBounds().getMinX(); double coverageMaxX = coverageEnvelope.getBounds().getMaxX(); double coverageMinY = coverageEnvelope.getBounds().getMinY(); double coverageMaxY = coverageEnvelope.getBounds().getMaxY();

    } catch (Exception e) {
        // TODO: handle exception
    }
    System.out.println(coverageMinX);    
    return strExtent;
    
}

}

报错:

Exception in thread "main" java.lang.NoClassDefFoundError:
javax/media/jai/ImageLayout at
zy3dms.ImageExt.GetImageExt(ImageExt.java:18) at
zy3dms.ImageExt.main(ImageExt.java:11) Caused by:
java.lang.ClassNotFoundException: javax.media.jai.ImageLayout at
java.net.URLClassLoader.findClass(URLClassLoader.java:381) at
java.lang.ClassLoader.loadClass(ClassLoader.java:424) at
sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) at
java.lang.ClassLoader.loadClass(ClassLoader.java:357) ... 2 more

我不解的是两个工程同样的类,一个运行正常,一个报错。

"
Java
分享到
取消 提交回答
全部回答(1)
  • 因为相信,所以看见。
    2020-05-27 17:38:43

    这个问题本人已解决,在File ImageFile=new File(strImageUrl);打断点,开启调试模式,
    断点运行到GeoTiffReader reader=new GeoTiffReader(ImageFile);时,按F5(进入函数内部),但是没有运行函数,而是跳到classloader.class。
    为了加载类时唯一,改为org.geotools.gce.geotiff.GeoTiffReader reader=new org.geotools.gce.geotiff.GeoTiffReader(ImageFile);运行正常。
    图片是GeoTiffReader类的内部函数。
    图片描述

    0 0
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

推荐文章
相似问题