【问题标题】:Correct way to check Javac version in BASH script在 BASH 脚本中检查 Javac 版本的正确方法
【发布时间】:2016-06-29 22:28:15
【问题描述】:

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

我找到了一种获取java 版本的方法,它可能相似但不一样(它不适用于 javac)。

P.S.:目前在 OS X 上工作,但也应该在 Linux 上工作。

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

谢谢!

【问题讨论】:

  • javacPATH 中时,javac -version 似乎工作得很好。您的具体问题是什么?
  • 如果您未将代码包含在 Q 中,我们将无法帮助您修复代码。祝您好运。

标签: bash javac


【解决方案1】:

当 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

希望对你有帮助!

【讨论】:

  • JAVA_HOME 成功了。发生这种情况是因为我需要在没有“安装”但复制 SDK 的环境中运行它。
【解决方案2】:

如果javacPATH

jc_ver="$(javac -version 2>&1| grep -o '[0-9_.]*$')"
echo "$jc_ver"

或者使用cut:

jc_ver="$(javac -version 2>&1| cut -d ' ' -f2)"

【讨论】:

  • 同样使用 awk jc_ver=$(javac -version 2>&1 | awk -F ' ' '/javac/ {print $2}')
猜你喜欢
  • 2011-11-12
  • 1970-01-01
  • 2021-09-11
  • 1970-01-01
  • 1970-01-01
  • 2022-01-15
  • 1970-01-01
  • 1970-01-01
  • 2018-12-16
相关资源
最近更新 更多