最近工作上碰到與 Java 有關的事項,有人對 java 命令所使用的 JAVA_HOME 到底位於哪個目錄產生疑慮,造成測試的結果產生不一致的現象,導致溝通上產生麻煩,所以稍微研究一下如何得知目前使用的 java 版本與其 JAVA_HOME 工作目錄位於檔案系統中的位置。
跨平台的方法
開發人員的電腦中,通常不會只有一套 JDK ,不管事如何執行到 java 這個命令,只要在其後加上 -XshowSettings:properties -version 參數,然後尋找輸出中與 java / home 有關的選項設定值即可。這裡我們在 java 的指令參數中,加上 -version 只是為了不要讓 java 輸出又臭又長的 Usage 說明罷了,沒有甚麼特別的原因,一般來說只需要 -XshowSettings:properties 這個參數就足夠找到 JAVA_HOME 的真正位置。
$ java -XshowSettings:properties -version
...
java.home = /usr/lib/jvm/java-11-openjdk-11.0.18.0.9-0.3.ea.el8.x86_64
...