3

我正在尝试使用批处理文件升级 Java,我需要更改 PATH 系统变量以反映该更改。在 PATH 变量的开头我有

C:\Program Files\Java\jdk1.8.0_51;...

我需要将jdk值更改为jdk1.8.0_60。我对命令行和批处理文件比较陌生,所以我可能会误解一些东西。这是我正在尝试的。

我有几个变量

jVersion=1.8.0_
javaPath=C:\Program Files\Java
newVersion=60
oldVersion=51

我发现了一些关于用文字值替换字符串的方法

set PATH=%PATH:1.8.0_51=1.8.0_60%

但我不能让它与变量一起工作......

set PATH=%%PATH:%jVersion%%oldVersion%=%jVersion%%newVersion%%%

我不知道你是否需要 2%'s 在外面,或者只需要一个,或者!'s。我对延迟扩张的知识不是很有信心。我也不知道这是否可能。

作为奖励,我真的希望能够采用 ...\Java\ 之后的任何内容并将其替换为我的新值。这是以防万一我不知道 jdk 的 PATH 变量中的值

谢谢!

编辑:通过call在我的代码的修改版本之前使用命令,我能够让它工作

call set PATH=%PATH:%jVersion%%oldVersion%=%jVersion%%newVersion%%

我仍在试图弄清楚如何使其通用并改变...\jdk我所拥有的价值观。

4

3 回答 3

2

将以下代码粘贴到bat文件中,这应该可以解决问题

@echo off

setlocal EnableDelayedExpansion
set jVersion=1.8.0_
set "javaPath=C:\Program Files\Java"
set newVersion=60
set oldVersion=51
set PATH=%jVersion%%oldVersion%
echo before path change : !PATH!
set PATH=!PATH:%jVersion%%oldVersion%=%jVersion%%newVersion%!
echo final path change  : !PATH!
pause
于 2015-10-09T14:43:09.437 回答
1

这不完全是您想要做的,但可能会解决问题。创建一个名为的新环境变量JAVA_HOME并让它指向您的 java 安装文件夹。从现在开始,JAVA_HOME改为操纵这个变量。您可以每次都用您的脚本替换它。编辑您的PATH环境变量(仅一次),使其JAVA_HOME像这样包含这个新变量PATH=%JAVA_HOME%\bin;

于 2015-10-09T14:36:28.440 回答
-1

我想你想要这个:

set PATH=C:\Program Files\Java\jdk1.8.0_60;%PATH%

如果您将新的 JDK 放在当前路径之前的路径中,操作系统将使用新的 JDK。

但是您最好编辑PATH系统设置并用新旧路径替换旧的 JDK 路径。

于 2015-10-09T14:41:00.010 回答