【问题标题】:how to get latest JRE version in command prompt if windows has more than one JRE version如果 Windows 有多个 JRE 版本,如何在命令提示符下获取最新的 JRE 版本
【发布时间】:2016-10-21 06:08:30
【问题描述】:

我正在尝试使用dir 命令在 Windows 中安装最新的 JRE。我在 Windows 上安装了 JRE 1.6 和 1.8,但我需要在 Windows 中安装最新版本(即使将来它可能会更改为 1.8 到 2.0*)。任何人都可以帮助解决这个问题。

【问题讨论】:

  • Which JRE I am using 的可能重复项...请在发布问题之前花一些时间搜索 SO。
  • set JAVA_HOME=[PATH TO DESIRED JRE]
  • 简而言之:我的系统上不能有 6 个不同的 JDK 和 4 个不同的 JRE。注册表中只有 1 个 JDK 可见 - 这不是最新的。唯一可靠的方法是扫描整个硬盘上的java.exe(或javaw.exe)调用每个使用java -version 并解析输出。

标签: java windows command-line


【解决方案1】:

在win7上试试这个批次

@echo off



@echo off
rem http://technet.microsoft.com/en-us/library/bb490890.aspx
SETLOCAL EnableDelayedExpansion
:: findJDK.bat

rem start:-> Run a command in a separate process, or run a file with its default associated application
rem REGEDIT.EXE: -> Export to a (.REG) file: 
rem REGEDIT.EXE [ /L:system | /R:user ] /E exportfile.REG "registry_key"

start /w regedit /e reg1.txt "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\JavaSoft\Java Development Kit" 

rem TYPE: -> Display text file content in console
rem FIND: -> Search files or standard output

rem reserved key words regarding reg-key -> "JavaHome" "MicroVersion" "RuntimeLib"
rem | Reads the output from one command and writes it to the input of another command. Also known as a pipe. 

type reg1.txt | find "JavaHome" > reg2.txt 

if errorlevel 1 goto ERROR 
for /f "tokens=2 delims==" %%x in (reg2.txt) do (
  set JavaTemp=%%~x
  echo Regedit: JAVA_HOME path : !JavaTemp!
)

if errorlevel 1 goto ERROR
echo.
set JAVA_HOME=%JavaTemp%
set JAVA_HOME=%JAVA_HOME:\\=\%
echo JAVA_HOME was found to be %JAVA_HOME%



start /w regedit /e reg3.txt "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\JavaSoft\Java Runtime Environment" 
type reg3.txt | find "RuntimeLib" > reg4.txt 
if errorlevel 1 goto ERROR 
for /f "tokens=2 delims==" %%x in (reg4.txt) do (
  set JavaTemp=%%~x
  echo Regedit: JRE_HOME path : !JavaTemp!
)
if errorlevel 1 goto ERROR
echo.
set JRE_HOME=%JavaTemp%
set JRE_HOME=%JRE_HOME:\\=\%
echo JRE_HOME was found to be %JRE_HOME%
goto END
:ERROR
echo A reg1.txt is: & type reg1.txt
echo B reg2.txt is: & type reg2.txt
echo
:END
echo END

pause

【讨论】:

    【解决方案2】:
    java -version:1.8.0_101 -jar jarname.jar 
    

    在此处使用上述方式调用 java,您可以提供要使用的 java 版本,以防您的路径中有多个。

    【讨论】:

    • 有趣,我不知道这个。但这似乎只适用于 JRE,不适用于 JDK。使用 java -version:1.8 ... 未检测到我的 JDK 1.8 安装,即使 HKLM\SOFTWARE\JavaSoft\Java Development Kit\CurrentVersion 指向正确的安装
    猜你喜欢
    • 1970-01-01
    • 2010-12-24
    • 1970-01-01
    • 2018-11-25
    • 1970-01-01
    • 2018-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多