2011-07-20 30 views
1

無處不在我可以發現,表明jetty 6.1.x仍應該使用java 1.4.2運行。爲什麼jetty 6.1.x不能用java 1.4.2運行?

但是,如果我下載一個碼頭二進制文件, 「Java的罐子start.jar」,我得到的變化:

「異常線程 「main」 因爲java.lang.UnsupportedClassVersionError:(ORG/mortbay/xml/XmlConfiguration)錯誤的主要版本在偏移量= 6「

我已經試過它與jetty 6.1.26從dist.codehouse.org/jetty下載。我已經嘗試過使用'hightide'碼頭版本6.1H.24和hightide-6.1H.8。

我的Java是:

$ Java的版本 Java版本 「1.4.2」 的Java(TM)2運行環境,標準版(建設2.3) IBM J9 VM(版本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)

我知道這是anchient java的在這裏,但我有一些古老的代碼運行在上面。無處不在SAYS jetty 6.1應該在Java 1.4上運行。我甚至發現古老的博客文章說他們用java 1.4運行jetty 1.6。

那又怎麼樣?我究竟做錯了什麼?

回答

0

好吧,我想通了。

特別是jetty 6.1.26,以及所有jetty 6.1.x一般,DO運行在Java 1.4上,並且在官方站點ARE上分發的.jars被編譯爲與java 1.4一起工作。

那麼,爲什麼它不適合我?

與jetty分發的一些示例webapps不能在1.4下工作,它們不會編譯爲1.4。我不知道這是一次包裝事故還是什麼。

但是,如果我刪除了所有示例應用程序,刪除./webapps和./contexts中的所有內容,則股票發行版二進制碼碼6.1.26版本在1.4下啓動正常,並且在我安裝我自己的webapps時正常工作。

3

正如我在http://docs.codehaus.org/display/JETTY/what+JVMs+are+supported上看到的那樣,在JDK 1.4上運行的最新Jetty是6.1.5。所以,你需要獲得老版本的碼頭。

其他的方法是自己編譯源代碼。教程如何做到這一點是Jetty wiki

+0

它幾乎可以肯定的情況下,jrochkind需要從給定的UnsupportedClassVersionError源編譯。 – wowest

+0

是的,很明顯,他使用的碼頭是針對較新的jdk編譯的。但根據jetty wiki上的信息,他可以使用舊版本的碼頭6.1.5並嘗試使用它。或者像我已經說過的那樣自己編譯碼頭。 – uthark

+0

我想也許這個頁面是在6.1.5是最新的6.1時編寫的。因爲主要的下載頁面:http://docs.codehaus.org/display/JETTY/Downloading+Jetty說「Jetty-6.1 1.4-1.6」但也許這是錯誤的?我想也許我的經驗證明這是錯誤的,但我感到可疑,爲什麼主要的碼頭下載頁面會這樣說,而且沒有人會注意到它是錯誤的呢?我對這裏缺乏良好的文檔/衝突文檔感到有點困惑。 – jrochkind

相關問題