$java -version
打印如下
java version "1.8.0_40"
Java(TM) SE Runtime Environment (build 1.8.0_40-b27)
Java HotSpot(TM) 64-Bit Server VM (build 25.40-b25, mixed mode)
我感兴趣的信息是完整的java版本,System.getProperties()似乎没有这些信息。它只有_
之前的版本,而不是在我的情况下更新40
的信息。
编辑:当我运行测试代码System.out.println(System.getProperty("java.version");
时,会打印完整版本。但我正在开发一个大型代码库,在这个代码库中我无法获得相同的结果。我检查了代码库,如果属性在某个时候以某种方式被覆盖,但无法找到任何东西。
EDIT_2:当我用java.version
手动编译代码然后在终端上使用javac
运行代码时,我发现java
打印1.8.0_40。但是当我通过IntelliJ运行它时,它只打印1.8.0。
答案 0 :(得分:5)
您可以使用此属性获取完整版本:
java.runtime.version
这是一个例子:
public class Test {
public static void main(String[] args) {
System.out.println(System.getProperty("java.runtime.version"));
}
}
在我的机器上,我得到以下输出:
1.8.0_92-B14
如果您只想要-
之前的部分,请使用以下系统属性:
java.version
这将输出:
1.8.0_92
答案 1 :(得分:0)
在下面的代码中使用这些属性
String version = System.getProperty("java.version");
System.out.println("version : "+version);
String vendor = System.getProperty("java.vendor");
System.out.println("java Vendor : "+vendor);
String vm = System.getProperty("java.vm.name");
System.out.println("java vm name : "+vm);
输出:
版本:15
java 供应商:甲骨文公司
java 虚拟机名称:OpenJDK 64 位服务器虚拟机
========
更多命令见附图