Ubuntu

如何確定 Debian/Ubuntu 上的 JAVA_HOME?

  • January 17, 2019

在 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… 剝離)

引用自:https://serverfault.com/questions/143786