2010-06-01 82 views
5

我需要編寫一個批處理腳本來確定是否安裝了Java,如果是,那麼在什麼路徑下? 我覺得它必須是與此類似:如何從批處理腳本檢查Java安裝?

for /f %%j in ("java.exe") do (
    set JAVA_HOME=.......... 
) 

,但我無法弄清楚。

P.S.它必須使用兩個空格的路徑。就像Java安裝到「Program Files」中一樣。

謝謝。

+0

上次我檢查了java安裝程序把java.exe放在c:\ windows \ system32 \ java.exe中。那麼你確定你真的想這麼做嗎? – Anton 2010-06-01 17:27:52

+0

在我的機器上JRE安裝到: c:\ Program Files \ Java \ jre6 \ bin \ java.exe – Ma99uS 2010-06-01 17:32:31

+0

請注意'JAVA_HOME'僅供JDK使用。它的缺席並沒有告訴你有關是否安裝JRE的任何信息。並且'java.exe'是兩者的一部分... – Joey 2010-06-01 17:49:42

回答

1

最新版本寫入註冊表:

HKEY_LOCAL_MACHINE \ SOFTWARE \ JavaSoft的

你可以看看什麼鍵都在那裏,並使用reg.exe

+0

我可以確定所有Windows版本上的所有Java版本在註冊表中都有相同的路徑嗎? – Ma99uS 2010-06-01 18:16:46

+0

這個reg路徑可能很標準,我只是不知道JAVA已經使用相同的路徑/鍵多久。如果你想絕對肯定的話,你可以用你想要運行的任何應用程序來發布java exe。 – JamesG 2010-06-07 17:31:26

3

你不能使用走出路徑'where'命令?如:

>where java 

並測試這個嗎?

例子:

C:\Users\myname>where java 
C:\Program Files (x86)\Java\jdk1.6.0_17\bin\java.exe 

C:\Users\myname>where foo 
INFO: Could not find files for the given pattern(s). 
+0

在我的機器上,「java」生成一個32位版本的java,而「java -version」找到一個64位版本。 – 2011-09-30 18:48:50

7

使用REG [.EXE]可以查詢安裝在系統上可能JRE的候選人。可能沒有或可能有幾個。

在一個測試設置,命令shell中運行:

reg query "HKLM\Software\JavaSoft\Java Runtime Environment"

我得到三個結果線,其中第一個是基於 CurrentVersion REG_SZ 1.6

,查詢

reg query "HKLM\Software\JavaSoft\Java Runtime Environment\1.6\"

給我JavaHome REG_SZ C:\Program Files\Java\jre6

它比掃描文件系統來查找java二進制文件效率更高。

這是在Windows XP 32位的虛擬安裝下測試的。

+0

我在Windows 8上安裝了JRE7-32bit。reg.exe不能識別任何Java版本。我可以運行可執行文件,但是我不能在java或javaw這樣的控制檯中使用任何java命令。如何檢測Java是否安裝在這樣的系統中? – 2013-03-05 16:52:35

1

我會(使用批處理)

::get javaw.exe from the latest properly installed jre 
for /f tokens^=2^ delims^=^" %%i in ('reg query HKEY_CLASSES_ROOT\jarfile\shell\open\command /ve') do set JAVAW_PATH=%%i 

::if reg entry is not found, java is not installed 
if "%JAVAW_PATH%"=="" goto YOUR_ERROR 

::then strip "\javaw.exe" from the JAVAW_PATH obtained above 
set JAVA_HOME=%JAVAW_PATH:\javaw.exe=% 

這應該與JRE 1.6並安裝在Windows XP 1.7,七地工作,並且方式比搜索文件系統來得更快。

+0

這太棒了! – rahuldottech 2016-05-06 08:19:02

相關問題