开发者社区> 问答> 正文

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

"

关于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

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

"

展开
收起
因为相信,所以看见。 2020-05-27 10:02:01 2233 0
1 条回答
写回答
取消 提交回答
  • 阿里,我所有的向往

    这个问题本人已解决,在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类的内部函数。
    图片描述

    2020-05-27 17:38:43
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载