異なるJDKバージョンに取り組んでいる2人の締約国間の互換性を高める方法

StackOverflow https://stackoverflow.com/questions/3240822

質問

私のプロジェクトは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でサードパーティのアプリケーションを再構築しようとすることができます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top