4

私たちがしていること:

Nolioというツールを使用して自動展開を行っています。実行する必要のある手順の1つは、デプロイされるアプリケーションにいくつかの環境変数を設定することです。たとえば、JAVA_HOME優先するJavaインストールディレクトリを指定します。

このコマンドを使用してSET、環境変数を永続的に設定しています。ほとんどの場合、これはうまく機能します。コンピューターを右クリックして環境変数に移動すると、すべてが完全に表示されます。

問題:

残念ながら、展開の後半で、環境変数に依存するいくつかのコマンドラインコマンドが実行され、環境変数が設定されていないように見えます。パラメータなしで使用SETすると、現在使用可能なすべての変数が表示され、これが確認されます。

これで、コンピューターを再起動すると、コマンドラインコマンドは正常に機能します。したがって、問題は、変数が永続的に設定され、GUIに表示されている間、再起動するまでコマンドプロンプトに伝達されないことです。

もう1つの興味深いヒント:コマンドをBATファイルに入れてダブルクリックすると正常に実行されますが、コマンドプロンプトで実行すると、再起動前に変数が解決されません。

誰かがこれを回避する方法を知っていますか?

4

3 に答える 3

6

First, what version of Nolio do you use?

The Environment variables to which you set value, in the context of one Nolio action, stay in the scope of this action. (It's like opening two different shells on every action)

The best practice for this case would be using the environment variables arrays inputs in the Nolio 'Run Command Line' action. You should write two arrays of parallel Env variable names and values, and give them as input to the 'Run Command Line' action.

于 2012-07-10T15:18:22.893 に答える
2

変数がコマンドプロンプトの範囲内にないようです。展開プロセスのどの時点でSETコマンドを使用していますか?GUIが値を認識しますが、再起動するまでコマンドプロンプトは認識されないのは興味深いことです。

また、.batファイルを使用することが望ましくない理由もわかりません。私は自分の理由を思いつくことができますが、あなたは何ですか?

編集

あなたが言及しなかったステップを示すこの記事を見つけました。やってみました:

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% 
于 2012-07-10T14:58:21.220 に答える
1

コマンドプロンプトがコマンドを認識せず、バッチファイルが認識される理由は完全にはわかりませんがSETX、代わりに使用してSET、問題が解決するかどうかを確認できます。

于 2012-07-10T15:02:42.277 に答える