如果从命令行运行“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
答案 0 :(得分:3)
没有。流程无法修改其父母的环境。
你能做的最好的事情就是作弊,做以下任何一种情况:
cmd
进程中运行,因此可以更改那里的环境变量。set
命令,捕获输出并自己设置变量。我猜想,如果你想要或者有其他输出就会出错。答案 1 :(得分:1)
根据question 2121795,可以设置 environment 变量。但是,我从未尝试过这些方法,因此无法验证它们是否有效。
如果它们确实有效,请记住设置环境变量不会在当前会话中生效(您需要重新启动cmd窗口)。
答案 2 :(得分:0)
同样有趣的是this question,其答案解释了如何使用Preferences API修改注册表。我想你应该能够通过这条路线修改环境变量(没有检查)。