Ubuntu
如何確定 Debian/Ubuntu 上的 JAVA_HOME?
在 Ubuntu 上,可以同時擁有多個 JVM。使用 選擇預設值
update-alternatives
。但這並沒有設置JAVA_HOME
環境變數,因為debian policy。我正在編寫一個啟動器腳本(bash),它啟動一個 java 應用程序。此 java 應用程序需要
JAVA_HOME
環境變數。那麼如何獲取目前選擇的JVM的路徑update-alternatives
呢?
對於 JRE,這樣的事情應該可以解決問題:
JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::")
danadam 的解決方案可以很容易地用於根據需要檢索 JDK(即不是 JRE)路徑:
JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::")
- 查找包含在 JDK(但不是 JRE)中的 javac Java 編譯器(而不是 java)。
- 沒有尾隨 / (由 sed s:/bin… 而不是 s:bin… 剝離)