我想编写一个Java示例文件,在其中我想知道类在哪个JVM版本中运行。有办法吗?
public class Java9Check{
public static void main(String[] args){
String bytecodeStr = System.getProperty("java.class.version");
try {
double bytecodeVal = Double.parseDouble(bytecodeStr);
int bytecode = (int) bytecodeVal;
// if Java 8 or below, return ExitCode(1)
if (bytecode < 53) {
System.out.println("Java8 or below");
System.exit(1);
}
System.out.println("Java9 or above");
} catch (NumberFormatException ignored) {}
// proceed with normal exit, ExitCode(0)
}
}
JDK Version Class File Version
Java 1.0 45.0
Java 1.1 45.3
Java 1.2 46.0
Java 1.3 47.0
Java 1.4 48.0
Java 5 49.0
Java 6 50.0
Java 7 51.0
Java 8 52.0
Java 9 53.0
Java 10 54.0
Java 11 55.0
Java 12 56.0
Java 13 57.0
Java 14 58.0
Java 15 59.0
Java 16 60.0
Java 17 61.0
Java 18 62.0
Java 19 63.0
Java 20 64.0
Java 21 65.0
Java 22 66.0
AccessController.doPrivileged(new PrivilegedAction<String>(...));
。 - bestsssjava.specification.version
、java.version
和java.vm.version
这三个属性都可以在沙盒小程序中使用,至少在1.6.0_23
版本中是可以的。请参考我的回答以获取更多细节信息。 - Andrew Thompsonjava -version
:) - badp