我有一个Shell脚本,应该可以检测到不兼容(太旧)的Java安装。
不幸的是,java -version
的输出似乎变化很大,是否有一些网站收集了尽可能多的示例,所以我可以针对它们测试我的脚本?
答案 0 :(得分:2)
我有类似的功能,即检测Java的过时版本。我发现了同样的问题,即java -version的可变性太大,尤其是因为我的需求是主要版本的粒度。我发现System属性java.vm.specification.version实际上是需要的(也许您也确实需要)。 我在运行时在应用程序中解决了该问题,但是,此处完成的操作可以轻松地用作小型独立应用程序。
final String javaVersion = System.getProperty("java.vm.specification.version");
final String[] versionInfo = StringUtils.split(javaVersion, ".");
if (Integer.parseInt(versionInfo[0]) == 1 && Integer.parseInt(versionInfo[1]) < 8) {
logger.error("Java 1.8 required. Unable to run with Java " + javaVersion);
throw new IllegalArgumentException("Java 1.8 required. Runtime java version: " + javaVersion);
}