从命令行获取 Java 合规级别信息

Posted

技术标签:

【中文标题】从命令行获取 Java 合规级别信息【英文标题】:Get Java compliance level information from command line 【发布时间】:2020-12-08 13:28:28 【问题描述】:

我使用 Java 14,我想为 Eclipse 编写一个自动配置脚本,以防我在我的机器上更新 Java。 Eclipse 使用以下行来指定默认的 Java VM:

<vmSettings defaultVM="57,org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType13,1597823290779" defaultVMConnector="">

如您所见,“defaultVM”属性中的第一个参数是合规级别,我不知道如何从 java 命令获取此值(在本例中为“57”)。 “java --version”只给了我“14.0.2”,但这不是合规级别。关于如何在命令行上获得合规级别还有其他一些参数吗?然后,我将使用 PowerShell 命令对其进行解析和评估。像“javac”这样的其他命令也可以使用,因为我是从 zip redist 包中安装 OpenJDK。

提前致谢:-)

【问题讨论】:

【参考方案1】:

java -XshowSettings:all 将显示所有可用值。 java -X 将显示可用选项。也就是说,您仍然需要进行一些翻译。看起来“合规级别”可能对应于java.class.version(主要)版本:

$ $(/usr/libexec/java_home -v 13)/bin/java -XshowSettings:all 2>&1 | grep java.class.version
    java.class.version = 57.0
$ $(/usr/libexec/java_home -v 14)/bin/java -XshowSettings:all 2>&1 | grep java.class.version
    java.class.version = 58.0

【讨论】:

太棒了。正是我想要的。现在我可以做一些基于行的解析,我完成了。非常感谢!

以上是关于从命令行获取 Java 合规级别信息的主要内容,如果未能解决你的问题,请参考以下文章

我想查询以从命令行获取详细信息

从命令行获取默认打印机名称?

JAVA日志信息在命令行输出带颜色的字符串是怎么实现的

如何从 Python 程序中的命令行获取数据?

java之从命令行获取数据的三种方式

从 Windows 命令行获取文件夹大小