2011-10-20 40 views
1

我試圖從Eclipse構建和部署項目到JBoss deploy文件夾,其中包含來自Eclipse的Maven-Ant腳本,但它總是以JBoss日誌記錄以下內容結束:Java - 由於UnsupportedClassVersionError,Ant構建和部署到JBoss失敗

nested throwable: (java.lang.UnsupportedClassVersionError: Bad version number in .class file) 

此項目所使用的軟件如下:

  • 螞蟻1.6.5
  • Maven的Ant任務插件2.1.3
  • 的JBoss 4.0.5 GA
  • JDK 1.4

在Eclipse下的Window> Preferences我加入了JDK到Java>Installed JREs列表,並將其設置爲默認太多,以防萬一。在Project>Properties>Java Compiler下,我已將合規性級別設置爲1.4,並且還與其他合規性設置一起使用,但未取得任何成功。

此外,JBoss設置爲使用與Oracle網站完全相同的JDK 1.4_03。奇怪的是Eclipse傾向於將其標識爲版本1.5。例如,在Java編譯器頁面上,它說:

當選擇1.4符合性時,請確保已安裝並激活兼容的JRE(當前爲1.5)。

有沒有人可以提供一些建議,我可以在哪裏出錯?

在此先感謝!

+1

您必須管理該平臺並確保您的構建選項指定了Java 4.我將窺視Ant腳本,看看它是否具有源代碼級別,這將覆蓋Eclipse中的任何設置。在javac標籤中查找target =「1.5」條目。 – Ewald

+0

我檢查了Ant構建文件,並且它們都沒有javac任務上的目標或源屬性。 – Raidok

回答

0

我用的JDK竟然是錯誤的版本。我與之前的一位開發人員取得了聯繫,他表示,它肯定應該與JDK 1.5 update 9一起工作,而這一切都有所不同。我過去了那個模棱兩可的錯誤信息。對不起,夥計們!

1

這意味着JBoss中的某些類是使用Javac的不兼容(更新)版本 (具有更大的主編號)編譯的,而您的JRE runung JBoss拒絕加載此類。

(違規類是地方上的堆棧跟蹤)

唯一的辦法是用最新的JDK運行JBoss和編譯(1.4是很老AFAIK不再支持)

1

我就開始尋找在你的maven/ant環境屬性。

Eclipse中的jdk選擇僅在ide中使用。 java_home和其他選項設置int你的maven屬性或ant屬性將用於編譯和構建。

我也會檢查你的JAVA_HOME環境變量,就好像它沒有明確地設置在它將從環境中獲取的屬性文件中一樣。

1

您需要確保Ant腳本也使用正確的版本;您得到1.5警告有點麻煩 - 我發現很難相信Eclipse會錯誤地識別JDK。另外,請記住,JDK是而不是與JRE相同,因此請仔細檢查您的路徑/ etc。

您還需要確保您部署的庫和JBoss的庫都使用1.4進行編譯 - 如果您的項目具有依賴性,那麼它們的庫可能不會編譯爲1.4。另外,說「J2EE JDK 1.4」有點令人困惑,因爲Java EE和Java SE是兩個不同的東西,並且您不能在JDK 1.4,AFAIK下運行J2EE 1.4。

+0

這個Java版本的東西仍然讓我感到困惑。我需要JDK版本1.4,並從Oracle網站下載J2EE 1.4_03,以確保它還包含JAAS框架。我假設它包含1.4 JDK,因此也包含相應的JRE。我錯了嗎? – Raidok

+1

@Raidok取決於您實際下載的內容 - 根據[this](http://www.oracle.com/technetwork/java/javaee/),它看起來像包含JDK的下載,但它包含JDK 1.5。下載-141771.html)下載頁面。 –

+0

哦,這是一個無賴。這是我得到的那個。那麼,Eclipse是對的。 – Raidok