在BASH脚本中检查Javac版本的正确方法

时间:2016-06-28 13:59:39

标签: bash javac

我试图在bash脚本中获取javac版本(用于apks操作和构建)。

我找到了一种获取java版本的方法,该版本可能相似但不相同(它对javac不起作用)。

P.S。:目前正在开发OS X,但也应该在Linux上运行。

编辑:PS:某些环境可能没有PATH中的javac

谢谢!

2 个答案:

答案 0 :(得分:2)

当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 $2}')
        echo $version
    else
        echo javac not found
    fi
}

简单地称之为

showJavacVersion

希望它有所帮助!

答案 1 :(得分:0)

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)"