3

我遇到如下错误:

线程“Thread-1”java.lang.IncompatibleClassChangeError 中的异常:找到类 com.sun.image.codec.jpeg.JPEGImageEncoder,但需要接口

我已经使用Sun JDK构建了我的 JAR ,并且我在OpenJDK上运行。我有点被这种环境困住了。

有没有简单的方法解决这个问题?我必须在OpenJDK上编译运行代码吗?

4

2 回答 2

2

从表面上看,Jasper Reports 正在深入研究并使用它不应该使用的内部类/方法。这显然不适用于所有平台……这不足为奇,因为 Sun / Oracle 特别声明这样做可能会破坏。

你该怎么办?

  • 检查支持的平台数据表。我注意到它列出了 OpenJDK 6,但没有列出 OpenJDK 7。也许您应该坚持使用 JasperSoft 支持的平台。

  • 我发现这个页面似乎在谈论这个问题......或类似的东西......并提供了一种解决方法。

于 2013-03-07T01:24:21.657 回答
2

com.sun.image.codec.jpeg.JPEGImageEncoder顾名思义,它是一个特定于 Sun 的包,因此不能保证(实际上极不可能)任何其他 JDK\JRE 都会提供该类。你是直接用的吗?如果是这样,您将应用程序限制为仅限 Sun 的 JVM。

于 2013-03-06T23:52:47.543 回答