我試圖在bash腳本中獲取javac版本(專門用於apks操作和構建)。在BASH腳本中檢查Javac版本的正確方法
我找到了一種獲得java版本的方法,它可能類似但不一樣(它不適用於javac)。
P.S .:目前在OS X上工作,但也應該在Linux上工作。
編輯:PS:有些環境可能不具有的javac在PATH
謝謝!
我試圖在bash腳本中獲取javac版本(專門用於apks操作和構建)。在BASH腳本中檢查Javac版本的正確方法
我找到了一種獲得java版本的方法,它可能類似但不一樣(它不適用於javac)。
P.S .:目前在OS X上工作,但也應該在Linux上工作。
編輯:PS:有些環境可能不具有的javac在PATH
謝謝!
試試這個功能,它支持這兩種情況下,當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的環境中運行它。 – DNax
如果PATH
javac
:
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}') – gabocalero
'javac'在'PATH'中時,'javac -version'似乎可以正常工作。你的具體問題是什麼? – Aaron
如果您不在Q中包含它,我們無法幫助您修復代碼。祝您好運。 – shellter