为什么jetty 6.1.x不能用java 1.4.2运行?

时间:2011-07-20 01:57:42

标签: java jetty java1.4

我可以找到的Dcoumentation表明jetty 6.1.x应该仍然使用java 1.4.2运行。

然而,如果我下载一个jetty二进制文件和“java -jar start.jar”,我会得到以下变体:

“线程中的异常”主“java.lang.UnsupportedClassVersionError :( org / mortbay / xml / XmlConfiguration)错误的主要版本在偏移= 6”

我已经尝试过从dist.codehouse.org/jetty下载的jetty 6.1.26。我尝试过'hightide'码头发布6.1H.24和hightide-6.1H.8。

我的java是:

$ java -version java版“1.4.2” Java(TM)2运行时环境,标准版(版本2.3) IBM J9 VM(build 2.3,J2RE 1.4.2 IBM J9 2.3 Linux amd64-64 j9vmxa64142ifx-20100113(已启用JIT) J9VM - 20100112_51454_LHdSMr JIT - 20090210_1447ifx1_r8 GC - 200902_24)

我知道这是一个固定的java,但我有一些古老的代码可以运行它。 SAYS jetty 6.1应该在java 1.4上运行。我甚至发现古老的博客帖子说他们用java 1.4运行了jetty 1.6。

那是怎么回事?我做错了什么?

2 个答案:

答案 0 :(得分:3)

正如我在http://docs.codehaus.org/display/JETTY/what+JVMs+are+supported上看到的最新Jetty,在JDK 1.4上运行的是6.1.5。所以,你需要获得旧版本的码头。

其他方法是自己从源头编译码头。教程如何在Jetty wiki

答案 1 :(得分:0)

好的,我明白了。

特别是jetty 6.1.26,以及一般的所有jetty 6.1.x,DO在Java 1.4上运行,并且在官方站点上分发的.jars被编译为与java 1.4一起使用。

那为什么不适合我?

使用jetty分发的一些示例webapps不能在1.4下工作,它们不是为1.4编译的。我不知道这是一个包装事故还是什么。

但如果我删除所有示例应用程序,删除./webapps和./contexts中的所有内容,那么股票发行版二进制码头6.1.26版本在1.4以下就可以正常启动,并且在我安装自己的webapps时工作正常。