我遇到了以下错误:
线程“Thread-1”中的异常java.lang.IncompatibleClassChangeError: 找到类com.sun.image.codec.jpeg.JPEGImageEncoder,但是接口 预计
我使用 Sun JDK 构建了我的JAR,并且我在 OpenJDK 上运行。我有点沉迷于这种环境。
有一个简单的方法吗?我是否必须编译和在 OpenJDK 上运行代码?
答案 0 :(得分:2)
com.sun.image.codec.jpeg.JPEGImageEncoder
是特定于Sun的程序包,因此无法保证(实际上它极不可能)任何其他JDK \ JRE将提供该类。你是直接使用它吗?如果是这样,那么您将应用程序限制为仅限Sun的JVM。
答案 1 :(得分:2)
从它的外观来看,Jasper Reports正在向下钻取并使用它不应该使用的内部类/方法。这显然不适用于所有平台......这并不奇怪,因为Sun / Oracle特别声明这样做可能会破坏。
你应该怎么做?
检查Supported Platforms datasheet。我注意到它列出了OpenJDK 6,但没有列出OpenJDK 7.也许你应该坚持使用JasperSoft支持的平台。
我发现this page似乎在谈论这个问题......或者类似的东西......并提供了解决方法。