在 Windows 上的两个 java 版本之间切换

Switching between two java versions on Windows

目前我有一个 java 项目,我应该支持它的不同版本,它使用不同版本的 Java(以及一些工具,如 Ant)。取决于问题单,我需要同时处理 java 版本(7 和 8),并且经常在它们之间切换。 有人可以建议更轻松地处理它的最佳方法吗?我正在研究 Windows 7,所以我写了这样的 bat 文件用于切换 ("switch_java.bat"):

@ECHO OFF
set changeToNewVersion=%1

IF "%changeToNewVersion%"=="true" (
    setx /M ANT_HOME "c:\Program Files\Ant\apache-ant-1.9.4"
    setx /M JAVA_HOME "c:\Program Files\Java\jdk1.8.0_51"
) ELSE IF "%changeToNewVersion%"=="false" (
    setx /M ANT_HOME "c:\Program Files\Ant\apache-ant-1.8.3"
    setx /M JAVA_HOME "c:\Program Files\Java\jdk1.7.0_79"
) ELSE (
    echo ERROR: Enter key!
)

但也许还有更优的解决方案?

IMO,这主要是基于意见的问题,但我认为您可能找不到更好的解决方案,然后使用批处理脚本来解决这个问题。

从我的角度来看,制作带有参数的脚本可能不是很有用,因为它应该通过命令行或从另一个 bat 文件执行。

因此,您可以创建 2 个单独的 bat 文件,一个用于设置 jdk 1.7,第二个用于设置 jdk 1.8。或者您可以修改您的脚本,以确定当前版本并设置另一个。在这两种情况下,您都可以在不提供任何额外参数的情况下简单地调用执行一个 bat 文件。

为了在一个环境中管理不同版本的 Java,我们可以使用 jEnv tool。安装并将其添加到 Path 环境变量后,所有需要做的是:

  • 将您需要的所有 Java 版本添加到 jEnv 配置中,例如:

    jenv add c:\Program Files\Java\jdk1.7.0_80
    
  • 配置要使用的 JVM(全局、按目录或针对当前 shell 实例):

    jenv global jdk1.7.0_80
    

windows 有一个 Github 工具。我自己也在用,真的很不错
如果您遇到问题,维护者通常会非常快速地响应

用法(注:local overwrites change.use overwrites local)

  1. 添加新的Java环境(需要绝对路径)
    jenv 添加 <name> <path>
    示例:jenv add jdk15 D:\Programme\Java\jdk-15.0.1

  2. 更改当前会话的 java 版本
    jenv 使用 <name>
    示例:jenv use jdk15

  3. 清除当前会话的java版本
    jenv 使用删除
    示例:jenv use remove

  4. 全局更改 java 版本
    jenv 变化 <name>
    示例:jenv change jdk15

  5. 始终使用此文件夹中的 java 版本 jenv 本地 <name>
    示例:jenv local jdk15

  6. 清除此文件夹的 java 版本
    jenv 本地删除
    示例:jenv local remove

  7. 列出您所有的 Java 环境
    jenv 列表
    示例:jenv list

  8. 从 JEnv 列表中删除现有的 JDK
    jenv 删除 <name>
    示例:jenv remove jdk15

https://github.com/FelixSelter/JEnv-for-Windows