異なるJDKバージョンに取り組んでいる2人の締約国間の互換性を高める方法
-
15-09-2020 - |
質問
私のプロジェクトは1.4.2 JDKで構築されています。 今度は第三者の瓶と対話するつもりです、JDK 1.6
クライアントクラスの使用中に互換性の問題が発生します。 JDKを1.6にアップグレードすることなく、または1.4.2
でサードパーティのjarを再構築することなく、それを解決することは可能ですか解決
Previous JDK 1.4でJDK 1.6でコンパイルされたクラスを実行することはできません.java.lang.UnsupportedClassVersionError
例外が発生します。これはJavaがフォワード互換性がないためです。逆方向互換性はまさに互換性があります(仕様)
JDK 1.4.2.19とJDK 1.6.0.23をインストールしてサンプルアプリケーションを書き込んだことを確認して下さい:
public class HelloWorld { public static void main(String[] args) { System.out.println("Hello world!"); } }.
JDK 1.6.0.23:
../1.6.0.23/bin/javac HelloWorld.java
.
とJDK 1.4.2.19で実行する:
../1.4.2.19/bin/java HelloWorld
.
出力:
Exception in thread "main" java.lang.UnsupportedClassVersionError: HelloWorld (Unsupported major.minor version 50.0) at java.lang.ClassLoader.defineClass0(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:539) ....
解決策:1.6(および1.5)で導入されたメソッドを呼び出しない場合は、JDK 1.4でサードパーティのアプリケーションを再構築しようとすることができます。
所属していません StackOverflow