2012-02-23 9 views
1

私は自分のアプリケーションでJava 1.5+をサポートしたいと思いますが、ユーザーがJava 1.6 + JVMでJava 1.6 + -specific API呼び出し。だから私は、JVMの現在のバージョンをチェックし、使用可能なAPIだけが使用されるようにする方法が必要です。もちろん、私は-target 1.5でコンパイルしています。Javaの現在のバージョンが1.6より高いかどうかを確認する方法

は私が作ってみた:

if (System.getProperty("java.vm.version").startsWith("1.5")) { 
    // Do 1.5 things 
} else { 
    // Do 1.6+ things 
} 

法案を合わせているようだが、「より良い」方法がある場合、私は思ったんだけど?

また、1.5コードから1.6 APIコールを呼び出さないように注意すると、1.5 JVMで実行しているときにNoSuchMethodErrorNoClassDefFoundが発生する可能性はありますか?

+0

のための可能な重複:http://stackoverflow.com/questions/2591083/getting-version-of-java-in -ランタイム – Thomas

答えて

3
あなたがやりたい事が存在するかどうかを確認するためにリフレクションを使用することができ

try { 
    DesiredClass.class.getMethod("desiredMethod", <parameter types...>) 
    // Do 1.6 things 
} 
catch (NoSuchMethodException e) { 
    // Do 1.5 things 
} 
関連する問題