在 BASH 脚本中检查 Javac 版本的正确方法
Correct way to check Javac version in BASH script
我正在尝试在 bash 脚本中获取 javac 版本(用于 apks 操作和构建)。
我找到了一种获取 java 版本的方法,它可能相似但不相同(它不适用于 javac)。
P.S.: 目前在 OS X 上工作,但也应该在 Linux 上工作。
编辑:PS:某些环境的 PATH 中可能没有 javac
谢谢!
如果javac
在PATH
中:
jc_ver="$(javac -version 2>&1| grep -o '[0-9_.]*$')"
echo "$jc_ver"
或使用cut
:
jc_ver="$(javac -version 2>&1| cut -d ' ' -f2)"
试试这个支持两种情况的函数,无论 javac 是否在 PATH 变量中
showJavacVersion()
{
x="h"
{
x=$(type -p javac)
} >&-
if [ -n "$x" ]; then
_javac=javac
elif [[ -n "$JAVA_HOME" ]] && [[ -x "$JAVA_HOME/bin/javac" ]]; then
_javac="$JAVA_HOME/bin/javac"
fi
if [[ "$_javac" ]]; then
version=$("$_javac" -version 2>&1 | awk -F ' ' '/javac/ {print }')
echo $version
else
echo javac not found
fi
}
就这么叫吧
showJavacVersion
希望对您有所帮助!
我正在尝试在 bash 脚本中获取 javac 版本(用于 apks 操作和构建)。
我找到了一种获取 java 版本的方法,它可能相似但不相同(它不适用于 javac)。
P.S.: 目前在 OS X 上工作,但也应该在 Linux 上工作。
编辑:PS:某些环境的 PATH 中可能没有 javac
谢谢!
如果javac
在PATH
中:
jc_ver="$(javac -version 2>&1| grep -o '[0-9_.]*$')"
echo "$jc_ver"
或使用cut
:
jc_ver="$(javac -version 2>&1| cut -d ' ' -f2)"
试试这个支持两种情况的函数,无论 javac 是否在 PATH 变量中
showJavacVersion()
{
x="h"
{
x=$(type -p javac)
} >&-
if [ -n "$x" ]; then
_javac=javac
elif [[ -n "$JAVA_HOME" ]] && [[ -x "$JAVA_HOME/bin/javac" ]]; then
_javac="$JAVA_HOME/bin/javac"
fi
if [[ "$_javac" ]]; then
version=$("$_javac" -version 2>&1 | awk -F ' ' '/javac/ {print }')
echo $version
else
echo javac not found
fi
}
就这么叫吧
showJavacVersion
希望对您有所帮助!