當電腦里面有多個jdk或是jre時,在cmd里面到底是用的哪個java.exe呢?
一、cmd 里使用java:
1. 使用哪個java.exe
機器上很多地方都有java.exe,cmd 里用java,實際是用path變量最前面一個,就是C:\WINDOWS\system32里面的
2. 使用哪個jre
在哪個jre下啟動java.exe呢,有個查找順序:(1)java.exe當前目錄(2)java.exe的父目錄(3)注冊表里current version下的版本號,該版本下有對應的JavaHome路徑
所以在我的機器上,cmd 里java時,首先找C:\WINDOWS\system32下,木有jre;然后是C:\WINDOWS\ 木有 jre;
最后通過注冊表找到了1.6版本的jre,所以java -version 顯示的是1.6版本
不管我是否給jdk1.5設置了環境變量,都不影響上面的結果
二、刪除了PATH變量的Java設置,但是依然可以在cmd里面運行java.exe
why?因為注冊表面還沒刪除!!!