2013-05-28 25 views
1

我正在創建設置java.exe的PATH變量的Azure PaaS角色。 我有一個後臺任務,這樣做。創建Azure Paas角色時未設置Java 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. 

虛擬機啓動時我看到PATH環境變量設置正確,並指出其中的jdk \ bin文件夾。然而,我的應用程序無法以錯誤「java不被識別爲內部或外部批處理命令」開始。

JAVA命令來啓動我的應用程序是

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

這裏是混亂的路徑,

  1. 我登錄到虛擬機之後,打開命令提示符窗口,輸入java我看到它的工作原理精細。
  2. 如果我重新啓動VM,啓動我的應用程序的java命令運行正常,我和我的應用程序也開始正常。

回答

3

有SETX並設定功能之間的差異顯著:

  • 設置發生在當地 CMD背景效應。一旦你退出或關閉cmd窗口,就會失去環境變量。

  • SETX發生在未來 CMD背景效應。所以你不會在當前cmd中看到環境變量和它的值。 您需要打開一個新的cmd窗口才能看到它。

如果你想使用它的全球和即時的,你應該同時使用這功能的一面。

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

+0

+1非常感謝您指出了這一點。爲我工作得很好。事實上,我真的不需要使用setx,因爲我只需要在本地環境中設置PATH變量。 – pup784