2017-08-24 31 views
2

我現有的服務器上的Java 1.6上運行,我不能升級。如何鏈接代碼,並與其他Java版本兼容

我需要的時候我寫一些代碼來訪問其API使用一些第三方JAR/API,它是與Java 1.8兼容,日食拋出

Exception in thread "main" java.lang.UnsupportedClassVersionError: JVMCFRE003 bad major version

我怎麼能現在開始?不知道這是否是重複問題,如果是,請提供一些鏈接。

+0

你不能兼容。每個項目只能連接一個「JDK」。如果你的庫不兼容 - 更新到1.8,否則找到其他的API –

回答

2

的一點是:Java虛擬機向前兼容。

一個.class這是由「N + 1」的編譯器生成的文件不能在「n」個JVM使用。 (除非您特別指示編譯器來編譯舊版本的Java)

您的選擇:

  • 看你是否能獲得編譯爲Java 6
  • 一個版本庫看是否可以運行你上的Java JRE 8應用程序(有一個較新的JVM運行的Java6班沒問題!)

選項1可以得到相當醜陋 - 作爲庫可能對系統類的依賴關係Java6沒有。

0

不,你不能使用的環境下的Java 1.8編譯罐子在Java 1.6的

1

運行,這是不可能使用倍數的Java版本,甚至數倍JVMs在同一個項目

如果您真的需要這個API,那麼你只有幾個選擇,最好的是升級所有的項目使用Java 1.8

0

正如別人指出,你不能這樣做。但是,您可能能夠找到您希望使用的較舊版本的庫,並且這些庫可能支持您的特定版本的Java。這可能意味着您將在您的軟件中採用錯誤,但這就是軟件隨着時間推移而發展的方式。

0

如果您必須使用此第三方jar ,那麼您必須使用-target 1.6(目標java 1.6)編譯第三方jar。 也許你會得到源和自行編譯或也許你會得到別人(供應商,也許)進行編譯。

所有其他選項都是:

  1. 升級您的JVM爲Java 8
  2. 不要使用第三方罐子。的寫或找到一個與Java 6
相關問題