2014-01-22 16 views
0

如果一臺計算機安裝了多個jdk和jre,我想知道,當我在dos中執行「java」命令時,如何查找「java」命令的哪個jre應該使用?我看到某處的回答,他說,有步驟搜索JRE:如何在DOS下使用「java」命令查找哪個jre使用

  1. 搜索的JAVA.EXE放置找到JRE目錄

  2. 搜索父目錄下找到JRE目錄當前目錄

  3. 搜索基礎上的[HKEY_LOCAL_MACHINE \ SOFTWARE \ JavaSoft的\ Java運行時環境]信息的JRE目錄中的註冊表

是對的?

+1

Dos沒有Java,您正在使用具有命令提示符工具的Windows版本。如果你正在談論'java'作爲'默認java'轉儲到system32文件夾中,它使用我相信的註冊表鍵。否則,您正在使用實際上是運行時的一部分的Java.exe,因此它不必查找任何內容。 – Gimby

+0

可能是正確的。你嘗試使用時遇到了什麼問題? –

回答

0

當你寫在Windows命令行中的Java「,它只會做一兩件事:

如果看有個東西叫一樣,在你的PATH,並調用它找到的第一個。

也許您問的是JRE安裝在Windows/System32中放置的java.exe存根(通常默認爲PATH)。這不是一個完整的JRE,而是一個簡單的特設程序,它試圖完成你在第三點中描述的內容。

3

來自dos提示符的Java命令與任何其他dos命令一樣被處理。

這意味着它會搜索PATH環境變量和當前文件夾。

如果要運行特定版本,請使用要運行的Java版本的完整路徑。

如果您想要始終運行特定版本,請相應地更改您的環境變量PATH

Java命令將與特定的JRE/JDK捆綁在一起,並在執行時使用該命令。

+0

但是'\ windows \ system32'中有'java.exe',它使用什麼算法來定位JRE?我知道它使用OP的第3步,但在此之前從未驗證它是否嘗試1和2。 –

+0

請注意,你可以通過運行「echo%path% – rainkinz

0

當您執行java命令時,它依賴於PATH變量和當前目錄。 Java隨附將使用的捆綁JRE。如果要更改爲不同的版本,則需要將其更改爲PATH變量或使用java.exe的絕對路徑執行它。

+0

@MarkoTopolnik」輕鬆地看到你的路徑是否可以請你解釋一下嗎? – Keerthivasan

+0

'java.exe'不會查閱'JAVA_HOME'環境變量。 –

+0

刪除JAVA_HOME參考。謝謝 – Keerthivasan

0

由於Marko Topolnik說,在\ windows \ system32中有java.exe,我測試了,我刪除了jdk bin文件夾中的java.exe文件,當我執行「java」命令時,它也可以工作,所以它表示在DOS下執行「java」命令時,它實際執行的是外部JRE bin文件夾中的java.exe,而不是JDK bin java.exe。所以我認爲PATH沒有用於搜索JRE,是不是?

+0

取決於:如果命令提示符在'C:\ Windows \ System32'中啓動,那麼不,它不使用PATH,因爲'java.exe'在'C:\ Windows \ System32'中 –

+0

因此它使用了[HKEY_LOCAL_MACHINE \ SOFTWARE \ JavaSoft \ Java Runtime Environment]信息直接?沒有使用1和2步? –

+0

我真的不知道,我以前從未在'C:\ Windows \ System32'中使用過java.exe –