`java.lang.ClassNotFoundException:javax.media.jai.ImageLayout`错误

时间:2014-10-16 19:35:46

标签: java groovy jai

我正在运行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

我仍然遇到同样的错误。

1 个答案:

答案 0 :(得分:0)

要使用javax.media.jai.ImageLayout,您需要Oracle JDK。它在OpenJDK中不存在。我不知道您正在使用的库,所以我无法告诉您是否有任何选项,例如为图像处理注入不同的策略。切换到Oracle JDK并测试它是否适合您。