环境变量在部署期间不更新

时间:2012-07-10 14:53:13

标签: windows deployment batch-file nolio

我们正在做什么:

我们正在使用名为Nolio的工具进行自动部署。我们需要做的一个步骤是为正在部署的应用程序设置一些环境变量 - 例如,JAVA_HOME指向我们首选的java安装目录。

我们使用SET命令永久设置环境变量 - 在大多数情况下,它都很有效。如果我右键单击我的计算机并进入环境变量,它们都会显示完美。

问题:

不幸的是,在部署之后,执行了一些依赖于环境变量的命令行命令,并且环境变量似乎没有设置。使用不带参数的SET通过显示所有当前可用的变量来验证这一点。

现在,如果我重新启动计算机,命令行命令可以正常工作。因此,问题是虽然变量是永久设置的并且确实出现在GUI中,但是在我重新启动之前它们不会传播到命令提示符。

另一个有趣的消息: 如果我将命令放在BAT文件中并双击它,它运行正常,但是如果我在命令提示符下执行变量在重新启动之前不要解决。

有没有人知道解决这个问题?

3 个答案:

答案 0 :(得分:6)

首先,您使用的是哪种版本的Nolio?

在一个Nolio操作的上下文中,您为其设置值的Environment变量将保留在此操作的范围内。 (这就像在每个动作上打开两个不同的炮弹一样)

此案例的最佳做法是在Nolio“运行命令行”操作中使用环境变量数组输入。您应该编写两个并行的Env变量名称和值数组,并将它们作为“运行命令行”操作的输入。

答案 1 :(得分:2)

您的变量似乎不在命令提示符的范围内。您在部署过程中的哪个阶段使用SET命令?有趣的是GUI识别值,但命令提示符在您重新启动之前不会。

此外,我不清楚为什么使用.bat文件是不受欢迎的。我可以提出我自己的理由,但你的是什么?

修改

我发现this文章显示了您未提及的步骤。你试过了吗?

rem Set the JAVA_HOME environment variable and insert it into the system path.
rem This will make the javac and java commands reachable from the command line.
set JAVA_HOME="C:\Program Files\Java\jdk1.5.0_14"
set PATH=%JAVA_HOME%\bin;%PATH% 

答案 2 :(得分:1)

我不完全确定为什么命令提示符无法识别命令和批处理文件,但您可以使用SETX替代SET来查看是否可以解决您的问题。