2012-07-10 97 views
4

期间没有更新,我们正在做的:环境变量部署

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

我们使用SET命令来永久设置环境变量 - 而且在大多数情况下,它的工作效果很好。如果我右键点击我的电脑并进入环境变量,它们都显得完美。

问题:

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

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

另一个有趣的花絮:如果我把命令BAT文件并双击它,它运行良好,但如果我在命令执行它提示变量不前重启解决。

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

+0

你用什么版本的Nolio? – 2012-07-10 15:09:39

回答

6

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

您在一个Nolio操作的上下文中将您设置的值的环境变量保留在此操作的范围内。 (就像在每个动作中打开两个不同的壳)

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

+0

我不知道我头顶的版本,但我注意到了这个选项,所以我会试一试。 – 2012-07-10 15:44:31

2

看起来您的变量不在命令提示符的范围内。您在使用SET命令的部署过程中的哪一点?有趣的是,图形用户界面可以识别这些值,但命令提示符不会重新启动。

此外,我不清楚为什么使用.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% 
+0

除了我们的命令是单线程外,我还没有反对使用BAT文件,所以Nolio可以直接执行它。我的观点更多的是,在命令行中运行它时双击bat工作失败 - 我认为这可能是相关的:) – 2012-07-10 15:41:31

+0

我没有部署在我面前来检查我们的SET语法,但我知道一种语法将其设置为永久,并将其设置在当前命令行中。你提供的那个会坚持其他命令行吗?失败的命令将在稍后与新控制台分开的步骤中执行。 – 2012-07-10 15:42:39

1

我不完全知道为什么在命令提示符下将无法识别的命令和批处理文件会,但你可以使用SETX作为替代SET,看看是否能解决您的问题。