2

「java-jar」がコマンドラインから実行される場合、Javaが終了した後も同じセッションに存在できるようにJavaプログラムからローカルDOS変数を設定する方法はありますか?

(cmd)
c:\java package.Class 

/*then in program you do something like 
'System.setVariable("name","value");'
*/

// java exited

echo %name%

value
4

3 に答える 3

3

いいえ。プロセスは親の環境を変更できません。

あなたができる最善のことは、少しごまかして、次のいずれかを行うことです。

  • Javaプログラムに、既知の場所にバッチファイルを書き出し、後でそれを呼び出して変数を設定させます。バッチファイルは現在のcmdプロセスで実行されるため、そこで環境変数を変更できます。
  • プログラムに名前/値ペアまたは完全なsetコマンドを出力させ、出力をキャッチして、後で自分で変数を設定します。あなたが望むか、他の出力を持っているとすぐにうまくいかない、と私は推測します。
于 2011-06-08T09:20:57.863 に答える
1

質問2121795によると、環境変数を設定することが可能です。ただし、これらの方法を試したことがないため、機能するかどうかを確認できません。

それらが機能する場合は、環境変数の設定は現在のセッションでは有効にならないことに注意してください(cmdウィンドウを再起動する必要があります)。

于 2011-06-08T10:04:22.597 に答える
0

また、PreferencesAPIを使用してレジストリを変更する方法を説明する回答があるこの質問も興味深いものです。このルートを介して環境変数を変更できるはずです(徹底的にチェックしませんでした)。

于 2011-06-08T12:47:20.050 に答える