「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
「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
いいえ。プロセスは親の環境を変更できません。
あなたができる最善のことは、少しごまかして、次のいずれかを行うことです。
cmd
プロセスで実行されるため、そこで環境変数を変更できます。set
コマンドを出力させ、出力をキャッチして、後で自分で変数を設定します。あなたが望むか、他の出力を持っているとすぐにうまくいかない、と私は推測します。質問2121795によると、環境変数を設定することが可能です。ただし、これらの方法を試したことがないため、機能するかどうかを確認できません。
それらが機能する場合は、環境変数の設定は現在のセッションでは有効にならないことに注意してください(cmdウィンドウを再起動する必要があります)。
また、PreferencesAPIを使用してレジストリを変更する方法を説明する回答があるこの質問も興味深いものです。このルートを介して環境変数を変更できるはずです(徹底的にチェックしませんでした)。