我正在创建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%
这是令人困惑的路径,
答案 0 :(得分:3)
setx和set函数之间存在显着差异:
设置在本地 cmd上下文中生效。这意味着一旦退出或关闭cmd窗口,就会丢失环境变量。
setx 在将来 cmd上下文中生效。因此,您不会在当前cmd中看到环境变量及其值。 您需要打开一个新的cmd窗口才能看到它。
如果你想全局和立即使用它,你应该并排使用这两个功能。