在Windows上安装最新的JRE 7时,它不再将命令java
添加到系统路径。因此,在这种情况下只调用bat文件中的java --version
失败(尽管安装了java.com中的Java)。
在Windows bat文件中找到java命令安装目录的可靠方法是什么?
我在以下地点看到过:
C:\Program Files\Java\jre6\bin\java.exe
C:\Program Files\Java\jre7\bin\java.exe
C:\Program Files (x86)\Java\jre7\bin\java.exe
注意:如果有多个,我想要默认(或最新 - 我不在乎)。
答案 0 :(得分:3)
如果已安装,请询问窗口
@echo off
setlocal enableextensions disabledelayedexpansion
rem Where to find java information in registry
set "javaKey=HKLM\SOFTWARE\JavaSoft\Java Runtime Environment"
rem Get current java version
set "javaVersion="
for /f "tokens=3" %%v in ('reg query "%javaKey%" /v "CurrentVersion" 2^>nul') do set "javaVersion=%%v"
rem Test if a java version has been found
if not defined javaVersion (
echo Java version not found
goto endProcess
)
rem Get java home for current java version
set "javaDir="
for /f "tokens=2,*" %%d in ('reg query "%javaKey%\%javaVersion%" /v "JavaHome" 2^>nul') do set "javaDir=%%e"
if not defined javaDir (
echo Java directory not found
) else (
echo JAVA_HOME : %javaDir%
)
:endProcess
endlocal
答案 1 :(得分:1)
这是找到它们的方法。
Dir c:\java.exe /a/s
搜索整个驱动器。
你可以把它放在for循环中。 (在for
循环中%A
变为%%A
in a batch)
@for /f "tokens=1-8 delims=/ " %A in ('dir "c:\program files\java.exe" /a /s^|findstr /i /v /r "DIR VOL \(s\) Listed"') do echo day %A month %B Year %C Name %G
找到它并将日月份放入单独的变量中。
For /?
dir /?
findstr /?