我現有的服務器上的Java 1.6上運行,我不能升級。如何鏈接代碼,並與其他Java版本兼容
我需要的時候我寫一些代碼來訪問其API使用一些第三方JAR/API,它是與Java 1.8
兼容,日食拋出
Exception in thread "main" java.lang.UnsupportedClassVersionError: JVMCFRE003 bad major version
我怎麼能現在開始?不知道這是否是重複問題,如果是,請提供一些鏈接。
我現有的服務器上的Java 1.6上運行,我不能升級。如何鏈接代碼,並與其他Java版本兼容
我需要的時候我寫一些代碼來訪問其API使用一些第三方JAR/API,它是與Java 1.8
兼容,日食拋出
Exception in thread "main" java.lang.UnsupportedClassVersionError: JVMCFRE003 bad major version
我怎麼能現在開始?不知道這是否是重複問題,如果是,請提供一些鏈接。
的一點是:Java虛擬機不向前兼容。
一個.class這是由「N + 1」的編譯器生成的文件不能在「n」個JVM使用。 (除非您特別指示編譯器來編譯舊版本的Java)
您的選擇:
選項1可以得到相當醜陋 - 作爲庫可能對系統類的依賴關係Java6沒有。
不,你不能使用的環境下的Java 1.8編譯罐子在Java 1.6的
運行,這是不可能使用倍數的Java版本,甚至數倍JVMs
在同一個項目
如果您真的需要這個API,那麼你只有幾個選擇,最好的是升級所有的項目使用Java 1.8
正如別人指出,你不能這樣做。但是,您可能能夠找到您希望使用的較舊版本的庫,並且這些庫可能支持您的特定版本的Java。這可能意味着您將在您的軟件中採用錯誤,但這就是軟件隨着時間推移而發展的方式。
如果您必須使用此第三方jar ,那麼您必須使用-target 1.6(目標java 1.6)編譯第三方jar。 也許你會得到源和自行編譯或也許你會得到別人(供應商,也許)進行編譯。
所有其他選項都是:
你不能兼容。每個項目只能連接一個「JDK」。如果你的庫不兼容 - 更新到1.8,否則找到其他的API –