使用第三方Java库时获取UnsupportedClassVersionError

时间:2016-03-03 10:25:42

标签: xpages activemq lotus-domino domino-designer-eclipse

在我的XPages项目中,我想使用名为ActiveMQ的第三方Java库。在Domino Designer中,我将包含所有类的jar文件添加到构建路径中。使用我自己的Java代码(而不是Java代理)中的类,我可以构建XPages应用程序而不会出现任何错误。

但是,当我尝试在XPage上运行我的Java函数时,我得到一个UnsupportedClassVersionError:

  

java.lang.UnsupportedClassVersionError :JVMCFRE003糟糕的主要版本;   Class = org / apache / activemq / ActiveMQSslConnectionFactory,Offset = 6

后跟NoClassDefFoundError:

  

java.lang.NoClassDefFoundError :   组织/阿帕奇/ ActiveMQ的/ ActiveMQSslConnectionFactory

这可能只是由于第一个错误而发生的后续错误(如果我错了,请纠正我)。

UnsupportedClassVersionError建议使用比Domino服务器(Domino 9.0.1 FP4)上使用的Java版本更高的Java版本构建第三方库。执行System.getProperty("java.version")会返回 1.6.0 (= Java 6)。根据{{​​3}},第三方Java库(ActiveMQ 5.8.0)已经使用jdk6 进行了编译,并使用jdk7"进行了验证。

有人可以告诉我为什么我会收到此错误,即使该库是使用我用来运行我的代码的相同Java版本构建的吗?

PS:在服务器计算机的命令行中执行java -version会返回Java版本1.7.0,因为该计算机上已安装了另外的JRE7。然而,"应该"在XPage上执行的问题是Domino JVM的版本(1.6.0)。我还想提一下......

1 个答案:

答案 0 :(得分:5)

Domino 9.0.1使用JVM 1.6(或6.0,具体取决于您的计算方式)。预计今年晚些时候的下一版本将升级到Java 1.8(8.0)。

要将ActiveMQ与JVM 1.6一起使用,您需要坚持versions up to 5.10,您可以从the archive pages(或Maven)下载。{/ p>

让我们知道它是怎么回事