从 BASH 脚本检查 Java 版本的正确方法
2022-08-31 13:32:57
如何从 bash 脚本中检查 Java 是否可用(在 PATH 中或通过JAVA_HOME),并确保版本至少为 1.5?
如何从 bash 脚本中检查 Java 是否可用(在 PATH 中或通过JAVA_HOME),并确保版本至少为 1.5?
也许是这样的:
if type -p java; then
echo found java executable in PATH
_java=java
elif [[ -n "$JAVA_HOME" ]] && [[ -x "$JAVA_HOME/bin/java" ]]; then
echo found java executable in JAVA_HOME
_java="$JAVA_HOME/bin/java"
else
echo "no java"
fi
if [[ "$_java" ]]; then
version=$("$_java" -version 2>&1 | awk -F '"' '/version/ {print $2}')
echo version "$version"
if [[ "$version" > "1.5" ]]; then
echo version is more than 1.5
else
echo version is less than 1.5
fi
fi
您可以通过以下方式获取 Java 版本:
JAVA_VER=$(java -version 2>&1 | sed -n ';s/.* version "\(.*\)\.\(.*\)\..*".*/\1\2/p;')
它会给你 java like , version like 和 110 for .16
1.6.0_13
15
1.5.0_17
openjdk 11.0.6 2020-01-14 LTS
因此,您可以在shell中轻松比较它:
[ "$JAVA_VER" -ge 15 ] && echo "ok, java is 1.5 or newer" || echo "it's too old..."
更新:正如注释中提到的,此代码应该可以与 openjdk 和 JAVA_TOOL_OPTIONS一起使用。