在Python中验证Java版本



我正在编写一个Python程序,它可以作为Java程序的包装器。我目前正在尝试验证用户的Java版本,以便我可以说它是好的,或者用户需要不同版本的Java。我的问题来自于有多种Java的事实,例如,有人运行OpenJDK有一个版本号模式,如11.0.8,而Java将有一个版本号模式,如1.8。我现在的代码可以得到这个数字,但是我找不到任何类似于"AdoptOpenJDK 2.5等于OpenJDK 11.0.8,等于Java 1.8"之类的内容。如果我能得到这样的东西,那么这个问题就可以通过简单的字典查找来解决了。

我的当前代码:

java_version = subprocess.check_output(['java', '-version'], stderr=subprocess.STDOUT) # returns bytestring
java_version = java_version.decode("utf-8") # convert to regular string
version_number_pattern = r'"(d+.d+).*"' # regex pattern matching
version = re.search(version_number_pattern, java_version).groups()[0]

从这里到达

任何帮助将非常感激,谢谢!

最可靠的方法是运行一个小程序来测试您需要的功能。编译java 1.2的主类,使其始终是可执行的,然后尝试-catch-invoke测试类。

问题是你需要它做什么。如果只是一个人,拿出绳子让他们目视检查。如果是验证JVM运行测试代码。

最新更新