我正在运行geoscript-groovy教程代码:
groovy:000> import geoscript.layer.GeoTIFF
groovy:000> format = new GeoTIFF()
groovy:000> raster = format.read(new File("raster.tif"))
,并得到以下错误:
ERROR java.lang.NoClassDefFoundError:
javax/media/jai/ImageLayout
我对JAI
的了解有限。我不知道这是一般的JDK配置问题还是groovy等问题。
我的问题是:
与javax.media.jai.ImageLayout
相关的此错误的原因是什么以及如何解决?
如何验证是否真正安装了javax.media.jai.ImageLayout
。
由于
P.S。软件环境是Ubuntu 12.04,包含:
$java -version
java version "1.6.0_32"
OpenJDK Runtime Environment (IcedTea6 1.13.4) (6b32-1.13.4-4ubuntu0.12.04.2)
OpenJDK 64-Bit Server VM (build 23.25-b01, mixed mode)
$groovy -v
Groovy Version: 1.8.6 JVM: 1.6.0_32 Vendor: Sun Microsystems Inc. OS: Linux
- 更新 -
我将JDK改为oracle
$ java -version
java version "1.7.0_72"
Java(TM) SE Runtime Environment (build 1.7.0_72-b14)
Java HotSpot(TM) 64-Bit Server VM (build 24.72-b04, mixed mode)
我仍然收到以下错误:
ERROR java.lang.NoClassDefFoundError:
javax/media/jai/ImageLayout
at org.geotools.gce.geotiff.GeoTiffFormat.getReader (GeoTiffFormat.java:287)
at org.geotools.gce.geotiff.GeoTiffFormat$getReader.call (Unknown Source)
此外,我用于安装Oracle JDK的命令是:
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java7-installer
我也做了
sudo apt-get install libjai-core-java libjai-imageio-core-java
我仍然遇到同样的错误。
答案 0 :(得分:0)
要使用javax.media.jai.ImageLayout
,您需要Oracle JDK。它在OpenJDK中不存在。我不知道您正在使用的库,所以我无法告诉您是否有任何选项,例如为图像处理注入不同的策略。切换到Oracle JDK并测试它是否适合您。