[英]JAVA_HOME directory in Linux
有沒有我可以用來找出
JAVA_HOME<\/code>目錄的 linux 命令?
我嘗試打印出環境變量(“env”),但找不到目錄。
"
在Linux上你可以運行$(dirname $(dirname $(readlink -f $(which javac))))
在Mac上你可以運行$(dirname $(readlink $(which javac)))/java_home
我不確定窗戶,但我想想where javac
會讓你非常接近
echo $JAVA_HOME
將打印該值,如果已設置。 但是,如果未在啟動腳本中手動設置它,則可能未設置。
如果您嘗試使用which java
並且找不到任何內容,則可能無法在您的計算機上安裝Java,或者至少不在您的路徑中。 根據您擁有的Linux發行版以及是否具有root訪問權限,您可以訪問http://www.java.com下載所需的版本。 然后,您可以將JAVA_HOME設置為指向此目錄。 請記住,這只是一個約定,不應該用於確定是否安裝了Java。
我知道這已經晚了,但是這個命令會搜索/ usr /目錄來為你找到java
sudo find /usr/ -name *jdk
結果來了
/usr/lib/jvm/java-6-openjdk
/usr/lib/jvm/java-1.6.0-openjdk
僅供參考,如果您使用的是Mac,目前JAVA_HOME位於
/System/Library/Frameworks/JavaVM.framework/Home
只是另一個解決方案,這個跨平台(使用java
),並指向jre的位置。
java -XshowSettings:properties -version 2>&1 > /dev/null | grep 'java.home'
輸出所有java
的當前設置,並找到一個名為java.home
。
對於Windows,你可以使用findstr而不是grep。
java -XshowSettings:properties -version 2>&1 | findstr "java.home"
要顯示您使用的環境變量的值:
echo $ VARIABLE
所以在你的情況下將是:
echo $ JAVA_HOME
如果您沒有設置它,您可以添加.bashrc
文件:
export JAVA_HOME = $(readlink -f / usr / bin / java | sed“s:bin / java ::”)
它會在您更新包時動態更改。
如果在您的環境中定義了$JAVA_HOME
...
$ echo $JAVA_HOME
$ # I am not lucky...
你可以從加載的類中猜出來。
$ java -showversion -verbose 2>&1 | head -1
[Opened /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.75.x86_64/jre/lib/rt.jar]
此方法可確保您在多次安裝時找到正確的jdk
/ jre
。
或使用strace
:
$ strace -e open java -showversion 2>&1 | grep -m1 /jre/
open("/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.75.x86_64/jre/bin/../lib/amd64/jli/tls/x86_64/libpthread.so.0", O_RDONLY) = -1 ENOENT (No such file or directory)
在終端上,鍵入:
echo“$ JAVA_HOME”
如果您沒有得到任何東西,那么您的環境變量JAVA_HOME尚未設置。 您可以嘗試使用“locate java”來嘗試發現Java的安裝位置。
你有沒有設置你的JAVA_HOME
這是一個改進,只抓住stdout的目錄:
java -XshowSettings:properties -version 2>&1 \
| sed '/^[[:space:]]*java\.home/!d;s/^[[:space:]]*java\.home[[:space:]]*=[[:space:]]*//'
您可以通過執行此命令
echo $JAVA_HOME<\/code>從命令行進行檢查。
如果安裝了 Java 但未設置路徑,則需要確定 Java 安裝的路徑。
我更喜歡使用
sudo update-alternatives --config java<\/code>列出所有已安裝版本並標記當前活動版本並提供對話框進行切換:
There are 3 programs which provide 'java'. Selection Command ----------------------------------------------- 1 java-11-openjdk.x86_64 (/usr/lib/jvm/java-11-openjdk-11.0.14.0.9-2.fc35.x86_64/bin/java) 2 java-17-openjdk.x86_64 (/usr/lib/jvm/java-17-openjdk-17.0.2.0.8-1.fc35.x86_64/bin/java) *+ 3 /usr/java/jdk-17.0.2/bin/java Enter to keep the current selection[+], or type selection number:
http://www.gnu.org/software/sed/manual/html_node/Print-bash-environment.html#Print-bash-environment
如果你真的想獲得一些關於你的BASH的信息,請將該腳本放在你的.bashrc中並觀看它。 你可以滾動並查看它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.