Java 11 Jasper report compilation error: org.eclipse.jdt.internal.compiler.classfmt.ClassFormatException

Java 11 Jasper report compilation error: org.eclipse.jdt.internal.compiler.classfmt.ClassFormatException

在 Java11 中编译 jasper 报告时出现以下错误:

ERROR [net.sf.jasperreports.engine.design.JRJdtCompiler] (default task-94) Compilation error: org.eclipse.jdt.internal.compiler.classfmt.ClassFormatException [Server:app-node-00] at deployment.app.ear//org.eclipse.jdt.internal.compiler.classfmt.ClassFileReader.(ClassFileReader.java:329) [Server:app-node-00] at deployment.app.ear//net.sf.jasperreports.engine.design.JRJdtCompiler.findType(JRJdtCompiler.java:251) [Server:app-node-00] at deployment.app.ear//net.sf.jasperreports.engine.design.JRJdtCompiler.findType(JRJdtCompiler.java:187) [Server:app-node-00] at deployment.app.ear//org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.askForType(LookupEnvironment.java:97)

我们正在使用 jasperreports-javaflow-6.5。1.jar。

org.tolven.library.jboss-rules.core-3.2.3.v_686_R32x.jar,假设它与 the one here, seems to be a very old (released in 2007) 无法读取的 JDT 编译器实现相同的文件 类 为 Java 11.

编译

对于 Java 11,您需要更新的 JDT 版本,例如 4.4.2。但随后存在依赖于 3.2.3 JDT 实现的代码不再适用于更新的 JDT 版本的风险,在这种情况下我不知道你能做什么。

您可能还需要升级 JasperReports 版本,根据 the change log 对 Java 11 的支持已在 6.8.0 中引入。