JDK 1.5 の Java バグを回避する必要がありますが、これは 1.6 で修正されました。次の条件を使用します。
if (System.getProperty("java.version").startsWith("1.5.")) {
...
} else {
...
}
これは他の JVM でも機能しますか? これを確認するより良い方法はありますか?
ベストアンサー1
java.version
はシステムプロパティすべての JVM に存在します。これには 2 つの形式があります。
- Java 8以下:
1.6.0_23
、、、1.7.0
1.7.0_80
1.8.0_211
- Java 9以降:
9.0.1
、、、11.0.4
12
12.0.1
メジャー バージョンを抽出するためのトリックは次のとおりです。1.x.y_z
バージョン文字列の場合は、文字列のインデックス 2 の文字を抽出します。x.y.z
バージョン文字列の場合は、最初のドット文字があれば、文字列をそのドット文字まで切り取ります。
private static int getVersion() {
String version = System.getProperty("java.version");
if(version.startsWith("1.")) {
version = version.substring(2, 3);
} else {
int dot = version.indexOf(".");
if(dot != -1) { version = version.substring(0, dot); }
} return Integer.parseInt(version);
}
これで、バージョンをより快適に確認できるようになりました。
if(getVersion() < 6) {
// ...
}