在Windows 10 cmd中切换JDK版本

时间:2017-11-24 08:37:55

标签: java windows batch-file cmd environment-variables

有没有办法在cmd中轻松更改JDK版本?喜欢mac上的版本。  Change Default JDK on Mac

6 个答案:

答案 0 :(得分:4)

这是我的Windows 10指南。

步骤1.转到System Properties。点击Environment Variables

步骤2.添加新变量,例如JAVA_8_HOME

  • JAVA_8_HOME%ProgramFiles%\Java\jdk1.8.0_152\bin
  • JAVA_9_HOME%ProgramFiles%\Java\jdk-9.0.1\bin
  • JAVA_HOME%JAVA_8_HOME%

就我而言,JAVA_8_HOME(JDK8)指向C:\Program Files\Java\jdk1.8.0_152\bin。您可以使用自己的javac路径替换它。 %JAVA_HOME%的默认值指向JAVA_8_HOME,这是JDK8的路径。这是我的偏好,可以随意调整。

步骤3.选择PATH,然后点击EditPATH

步骤4.点击New并添加%JAVA_HOME%。每次启动命令提示符时,%JAVA_HOME%都会自动添加到PATH

为了在cmd中切换JDK版本,这就是诀窍。 步骤5.我使用

创建了一个批处理文件
@echo off
:: Switch JDK version
DOSKEY java8=SET PATH=%JAVA_8_HOME%;%PATH%;
DOSKEY java9=SET PATH=%JAVA_9_HOME%;%PATH%

基本上,它会禁用echo并创建两个别名。在批处理文件中,::之后的任何字符串都是注释。每次调用java8java9时,它都会使用新的JDK路径重新导出%PATH%。将其另存为profile.bat。您可以随意命名。

第6步。 搜索regedit(注册表编辑器)。点击Edit> New> String Value。将AutoRun作为Value name,将%USERPROFILE%\profile.bat作为Value data。在这里,请将您的实际路径值设置为我们刚刚创建的profile.bat。因此,每当打开命令提示符时,它会自动加载profile.bat,这会在脚本中创建这两个别名。

步骤7.关闭您正在使用的任何命令提示符,或者只是打开一个新的命令提示符。这是因为您的更改不会影响打开的cmd窗口。环境变化只发生在新的CMD上。

步骤8.验证结果here

如果你使用不同的Python版本,同样的技巧也适用。找到我的python环境设置here

答案 1 :(得分:0)

In"系统属性"窗口,单击“环境变量...”并单击“编辑”选择PATH,然后选择“#34;新建"并输入; %JAVA_HOME%\bin

它将编写JAVA_HOME定义的。只需编辑一次。

在您根据需要定义JAVA_HOME cmd commande:set JAVA_HOME = path_of_jdk_or_jre之后。

答案 2 :(得分:0)

我为PC上安装的每个Java版本创建了批处理脚本,并在需要通过命令行更改Java版本时使用。这是一个例子,应该是不言自明的:

@echo off
echo Setting JAVA_HOME
set JAVA_HOME=C:\Program Files\Java\jdk-10
echo setting PATH
set PATH=C:\Program Files\Java\jdk-10\bin;%PATH%
echo Display java version
java -version

答案 3 :(得分:0)

创建一个文件夹(在我的情况下为C:\ devenv)并创建一个批处理文件,并以版本(jdk8.bat,jdk9.bat,jdk10.bat,jdk11.bat等)命名。添加此命令。您只需要将设置JAVA_HOME更改为jdk版本的位置即可。将批处理文件(C:devenv)的位置添加到环境变量的路径中

@echo off
set JAVA_HOME=C:\Program Files\Java\jdk-11.0.9
set PATH=%JAVA_HOME%\bin;%PATH%
@echo Display Java Version
java -version

您只需键入批处理名称(例如jdk11)就可以在cmd上运行

答案 4 :(得分:0)

发现单个批处理文件是一个更简单的解决方案。将批处理文件位置路径添加到系统环境变量将允许您从 cmd 执行它。

批处理文件(javaVer.bat):

@echo off
echo.

IF "%1" == ""       GOTO NoParams
IF "%1" == "8"      GOTO J8
IF "%1" == "11"     GOTO J11
IF "%1" == "latest" GOTO latest

IF "%1" == "-h"         GOTO help
IF "%1" == "--help"     GOTO help

:NoParams
    echo Enter Java version
    GOTO options
    
:help
    echo Usage: javaVer [java version]
    GOTO options

:: available java versions
:options
    echo options: 8, 11, latest.
    GOTO exit

:: java 8
:J8
    set JAVA_HOME=C:\Program Files\Java\jdk8u282-b08
    GOTO activate

:: java 11
:J11
    set JAVA_HOME=C:\Program Files\Java\jdk-11.0.10+9
    GOTO activate

:: latest java version
:latest
    set JAVA_HOME=C:\Program Files\Java\jdk-15.0.2+7
    GOTO activate

:: activates the selected java version
:activate
    set Path=%JAVA_HOME%\bin;%Path%
    echo Java %1 activated.
    GOTO exit

:: prints java version
:exit
    echo.
    echo Current Java version:
    java -version

用法:javaVer [java 版本]

exp:javaVer 8

答案 5 :(得分:0)

我通过替换环境变量中的 JAVA_HOME 变量 - 仅限系统属性来做到这一点。

如果您是域用户,请以管理员用户身份登录。

编辑环境变量 -> 高级 -> 系统变量 -> 新:

a) 为 JAVA_HOME 添加多个条目,如下所示:-

 JAVA_HOME (in my case, its version 11 is by default),  
 JAVA_HOME_6 (for version 6),  
 JAVA_HOME_7 (for version 7),  
 JAVA_HOME_8 (for version 8)

system variables JAVA_HOME

b) 现在在相同的系统变量下编辑路径并为java添加路径,如下所示。 删除任何现有的 java 路径条目。 enter image description here

假设我需要将java版本更改为8,然后我更改JAVA_HOME的键值。 即 JAVA_HOME 重命名为 JAVA_HOME_11 和 JAVA_HOME_8 重命名为 JAVA_HOME 您需要关闭现有 CMD 并打开新 CMD 以验证此更改。 我承认它仍然只是一个 GUI 解决方案

如果某些应用程序仍然没有采用新的java路径集,那么您需要在启动时检查java配置

c) 在 Windows 启动时单击配置 Java 应用程序。在这里,您可以通过复选框启用所需的路径。这消除了路径问题。 enter image description here

谢谢