在 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)
添加新的Java环境(需要绝对路径)
jenv 添加 <name> <path>
示例:jenv add jdk15 D:\Programme\Java\jdk-15.0.1
更改当前会话的 java 版本
jenv 使用 <name>
示例:jenv use jdk15
清除当前会话的java版本
jenv 使用删除
示例:jenv use remove
全局更改 java 版本
jenv 变化 <name>
示例:jenv change jdk15
始终使用此文件夹中的 java 版本
jenv 本地 <name>
示例:jenv local jdk15
清除此文件夹的 java 版本
jenv 本地删除
示例:jenv local remove
列出您所有的 Java 环境
jenv 列表
示例:jenv list
从 JEnv 列表中删除现有的 JDK
jenv 删除 <name>
示例:jenv remove jdk15
目前我有一个 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)
添加新的Java环境(需要绝对路径)
jenv 添加<name> <path>
示例:jenv add jdk15 D:\Programme\Java\jdk-15.0.1
更改当前会话的 java 版本
jenv 使用<name>
示例:jenv use jdk15
清除当前会话的java版本
jenv 使用删除
示例:jenv use remove
全局更改 java 版本
jenv 变化<name>
示例:jenv change jdk15
始终使用此文件夹中的 java 版本 jenv 本地
<name>
示例:jenv local jdk15
清除此文件夹的 java 版本
jenv 本地删除
示例:jenv local remove
列出您所有的 Java 环境
jenv 列表
示例:jenv list
从 JEnv 列表中删除现有的 JDK
jenv 删除<name>
示例:jenv remove jdk15