我需要編寫一個批處理腳本來確定是否安裝了Java,如果是,那麼在什麼路徑下? 我覺得它必須是與此類似:如何從批處理腳本檢查Java安裝?
for /f %%j in ("java.exe") do (
set JAVA_HOME=..........
)
,但我無法弄清楚。
P.S.它必須使用兩個空格的路徑。就像Java安裝到「Program Files」中一樣。
謝謝。
我需要編寫一個批處理腳本來確定是否安裝了Java,如果是,那麼在什麼路徑下? 我覺得它必須是與此類似:如何從批處理腳本檢查Java安裝?
for /f %%j in ("java.exe") do (
set JAVA_HOME=..........
)
,但我無法弄清楚。
P.S.它必須使用兩個空格的路徑。就像Java安裝到「Program Files」中一樣。
謝謝。
你不能使用走出路徑'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).
在我的機器上,「java」生成一個32位版本的java,而「java -version」找到一個64位版本。 – 2011-09-30 18:48:50
使用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位的虛擬安裝下測試的。
我在Windows 8上安裝了JRE7-32bit。reg.exe不能識別任何Java版本。我可以運行可執行文件,但是我不能在java或javaw這樣的控制檯中使用任何java命令。如何檢測Java是否安裝在這樣的系統中? – 2013-03-05 16:52:35
我會(使用批處理)
::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,七地工作,並且方式比搜索文件系統來得更快。
這太棒了! – rahuldottech 2016-05-06 08:19:02
上次我檢查了java安裝程序把java.exe放在c:\ windows \ system32 \ java.exe中。那麼你確定你真的想這麼做嗎? – Anton 2010-06-01 17:27:52
在我的機器上JRE安裝到: c:\ Program Files \ Java \ jre6 \ bin \ java.exe – Ma99uS 2010-06-01 17:32:31
請注意'JAVA_HOME'僅供JDK使用。它的缺席並沒有告訴你有關是否安裝JRE的任何信息。並且'java.exe'是兩者的一部分... – Joey 2010-06-01 17:49:42