获取最新的 Java Runtime Environment 父文件夹
Getting the latest Java Runtime Enviroment parent folder
我想让我的工作更轻松一些,我尝试创建一个批处理文件来获取 JRE 路径。我只得到 javaw.exe 路径。因此,例如我们使用的是 Team Center 10。它有这个 tem_init 并获取文件夹 JRE7(示例版本),但人们更新到最新版本并卸载。我正在寻找一个自动抓取已安装 JRE 的批处理文件。
@echo off
setlocal enableextensions disabledelayedexpansion
rem Where to find java information in registry
set "javaKey=HKLM\SOFTWARE\JavaSoft\Java Runtime Environment"
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 (
set TC_JRE_HOME : %javaDir%
)
:end
endlocal
我想要这样的路径C:\Program Files\Java\jre7
你可以试试这个,(它假定最新版本将是最后返回的结果):
@Echo Off
Set "baseKey=HKLM\SOFTWARE\JavaSoft\Java Runtime Environment"
Set "regVal=JavaHome"
Set "javaDir="
For /F "Tokens=2*" %%A In (
'"Reg Query "%baseKey%" /S /F "%regVal%" /V 2>Nul|Find /I "%regVal%""'
) Do Set "javaDir=%%~B"
If Not Defined javaDir (Echo Java directory not found) Else (
Set "TC_JRE_HOME=%javaDir%")
Pause
编辑
这似乎 Set
一个不必要的变量,这不是 :
@Echo Off
Set "baseKey=HKLM\SOFTWARE\JavaSoft\Java Runtime Environment"
Set "regVal=JavaHome"
Set "TC_JRE_HOME="
For /F "Tokens=2*" %%A In (
'"Reg Query "%baseKey%" /S /F "%regVal%" /V 2>Nul|Find /I "%regVal%""'
) Do Set "TC_JRE_HOME=%%~B"
If Not Defined TC_JRE_HOME Echo Java directory not found
Pause
我添加了 Pause
命令只是为了允许读取任何 Echo
es.
我想让我的工作更轻松一些,我尝试创建一个批处理文件来获取 JRE 路径。我只得到 javaw.exe 路径。因此,例如我们使用的是 Team Center 10。它有这个 tem_init 并获取文件夹 JRE7(示例版本),但人们更新到最新版本并卸载。我正在寻找一个自动抓取已安装 JRE 的批处理文件。
@echo off
setlocal enableextensions disabledelayedexpansion
rem Where to find java information in registry
set "javaKey=HKLM\SOFTWARE\JavaSoft\Java Runtime Environment"
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 (
set TC_JRE_HOME : %javaDir%
)
:end
endlocal
我想要这样的路径C:\Program Files\Java\jre7
你可以试试这个,(它假定最新版本将是最后返回的结果):
@Echo Off
Set "baseKey=HKLM\SOFTWARE\JavaSoft\Java Runtime Environment"
Set "regVal=JavaHome"
Set "javaDir="
For /F "Tokens=2*" %%A In (
'"Reg Query "%baseKey%" /S /F "%regVal%" /V 2>Nul|Find /I "%regVal%""'
) Do Set "javaDir=%%~B"
If Not Defined javaDir (Echo Java directory not found) Else (
Set "TC_JRE_HOME=%javaDir%")
Pause
编辑
这似乎 Set
一个不必要的变量,这不是 :
@Echo Off
Set "baseKey=HKLM\SOFTWARE\JavaSoft\Java Runtime Environment"
Set "regVal=JavaHome"
Set "TC_JRE_HOME="
For /F "Tokens=2*" %%A In (
'"Reg Query "%baseKey%" /S /F "%regVal%" /V 2>Nul|Find /I "%regVal%""'
) Do Set "TC_JRE_HOME=%%~B"
If Not Defined TC_JRE_HOME Echo Java directory not found
Pause
我添加了 Pause
命令只是为了允许读取任何 Echo
es.