如果从命令行运行“java -jar”,有没有办法从 java 程序设置本地 dos 变量,以便在退出 java 后,它仍然可以存在于同一个会话中?
例子
(cmd)
c:\java package.Class
/*then in program you do something like
'System.setVariable("name","value");'
*/
// java exited
echo %name%
value
如果从命令行运行“java -jar”,有没有办法从 java 程序设置本地 dos 变量,以便在退出 java 后,它仍然可以存在于同一个会话中?
例子
(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 窗口)。
这个问题也很有趣,它有解释如何使用 Preferences API 修改注册表的答案。我想你应该能够通过这条路线修改环境变量(没有仔细检查)。