2012-07-10 148 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,看看是否能解決您的問題。