使用第三方 Java 库时出现 UnsupportedClassVersionError
Getting UnsupportedClassVersionError when using third-party Java library
在我的 XPages 项目中,我想使用名为 ActiveMQ 的第三方 Java 库。在 Domino Designer 中,我将包含所有 类 的 jar 文件添加到构建路径。在我自己的 Java 代码(不是 Java 代理)中使用 类 可以正常工作,我可以构建 XPages 应用程序而不会出现任何错误。
但是,当我尝试在 XPage 上 运行 我的 Java 函数时,我得到一个 UnsupportedClassVersionError:
java.lang.UnsupportedClassVersionError: JVMCFRE003 bad major version;
Class=org/apache/activemq/ActiveMQSslConnectionFactory, Offset=6
后跟一个 NoClassDefFoundError:
java.lang.NoClassDefFoundError:
org/apache/activemq/ActiveMQSslConnectionFactory
这可能只是由于第一个错误而发生的后续错误(如果我错了请纠正我)。
UnsupportedClassVersionError 表明第三方库的构建版本 Java 高于 Domino 服务器 (Domino 9.0.1 FP4) 上使用的版本。正在执行 System.getProperty("java.version")
returns 1.6.0 (= Java 6)。根据 release notes 第三方 Java 库 (ActiveMQ 5.8.0) 已经“用 jdk6 编译并用 jdk7 验证”。
任何人都可以告诉我为什么我会收到此错误,即使库是使用我用于 运行 我的代码的相同 Java 版本构建的?
PS: 在服务器计算机的命令行中执行java -version
returns Java 版本1.7.0 因为该计算机上已经安装了额外的JRE7。然而,"should" 与 XPage 上的执行有关的版本是 Domino JVM 的版本(即 1.6.0)。我还是想提一下...
Domino 9.0.1 使用 JVM 1.6(或 6.0,具体取决于您的计算方式)。预计今年晚些时候的下一个版本将升级到 Java 1.8 (8.0)。
要将 ActiveMQ 与 JVM 1.6 一起使用,您需要坚持使用 versions up to 5.10, which you can download from the archive pages(或 Maven)。
告诉我们进展如何
在我的 XPages 项目中,我想使用名为 ActiveMQ 的第三方 Java 库。在 Domino Designer 中,我将包含所有 类 的 jar 文件添加到构建路径。在我自己的 Java 代码(不是 Java 代理)中使用 类 可以正常工作,我可以构建 XPages 应用程序而不会出现任何错误。
但是,当我尝试在 XPage 上 运行 我的 Java 函数时,我得到一个 UnsupportedClassVersionError:
java.lang.UnsupportedClassVersionError: JVMCFRE003 bad major version; Class=org/apache/activemq/ActiveMQSslConnectionFactory, Offset=6
后跟一个 NoClassDefFoundError:
java.lang.NoClassDefFoundError: org/apache/activemq/ActiveMQSslConnectionFactory
这可能只是由于第一个错误而发生的后续错误(如果我错了请纠正我)。
UnsupportedClassVersionError 表明第三方库的构建版本 Java 高于 Domino 服务器 (Domino 9.0.1 FP4) 上使用的版本。正在执行 System.getProperty("java.version")
returns 1.6.0 (= Java 6)。根据 release notes 第三方 Java 库 (ActiveMQ 5.8.0) 已经“用 jdk6 编译并用 jdk7 验证”。
任何人都可以告诉我为什么我会收到此错误,即使库是使用我用于 运行 我的代码的相同 Java 版本构建的?
PS: 在服务器计算机的命令行中执行java -version
returns Java 版本1.7.0 因为该计算机上已经安装了额外的JRE7。然而,"should" 与 XPage 上的执行有关的版本是 Domino JVM 的版本(即 1.6.0)。我还是想提一下...
Domino 9.0.1 使用 JVM 1.6(或 6.0,具体取决于您的计算方式)。预计今年晚些时候的下一个版本将升级到 Java 1.8 (8.0)。
要将 ActiveMQ 与 JVM 1.6 一起使用,您需要坚持使用 versions up to 5.10, which you can download from the archive pages(或 Maven)。
告诉我们进展如何