创建Azure Paas角色时未设置Java PATH

时间:2013-05-28 00:27:57

标签: azure azure-worker-roles path-variables

我正在创建Azure PaaS角色,该角色为java.exe设置PATH变量。 我有一个后台任务,这样做。

startupApp.cmd看起来像

    setx PATH %PATH%;%CD%\jdk\bin\  /m
    cscript /NoLogo util\unzip.vbs jdk.zip "%CD%"

Call the bat file to start my application. 

当VM启动时,我看到PATH环境变量已正确设置并指向jdk \ bin文件夹的位置。然而,我的应用程序无法启动错误“java不被识别为内部或外部批处理命令”。

启动我的应用程序的JAVA命令是

java %JAVA_OPTS% %LOG_OPTS% %LOG4J_OPTS% -cp my_app.jar %MAIN_CLASS%

这是令人困惑的路径,

  1. 登录虚拟机并打开命令提示符窗口并输入java后,我发现它工作正常。
  2. 如果我重启VM,启动我的应用程序的java命令运行正常,我和我的应用程序也开始运行。

1 个答案:

答案 0 :(得分:3)

setx和set函数之间存在显着差异:

  • 设置本地 cmd上下文中生效。这意味着一旦退出或关闭cmd窗口,就会丢失环境变量。

  • setx 将来 cmd上下文中生效。因此,您不会在当前cmd中看到环境变量及其值。 您需要打开一个新的cmd窗口才能看到它。

如果你想全局和立即使用它,你应该并排使用这两个功能。

描述取自:http://batcheero.blogspot.de/2008/02/set-and-setx.html