从java代码设置本地dos变量

时间:2011-06-08 09:19:47

标签: java batch-file dos windows-console

如果从命令行运行“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

3 个答案:

答案 0 :(得分:3)

没有。流程无法修改其父母的环境。

你能做的最好的事情就是作弊,做以下任何一种情况:

  • 让Java程序在某个已知位置写出批处理文件,然后调用它来设置变量。由于批处理文件在当前cmd进程中运行,因此可以更改那里的环境变量。
  • 让程序输出名称/值对或完成set命令,捕获输出并自己设置变量。我猜想,如果你想要或者有其他输出就会出错。

答案 1 :(得分:1)

根据question 2121795,可以设置 environment 变量。但是,我从未尝试过这些方法,因此无法验证它们是否有效。

如果它们确实有效,请记住设置环境变量不会在当前会话中生效(您需要重新启动cmd窗口)。

答案 2 :(得分:0)

同样有趣的是this question,其答案解释了如何使用Preferences API修改注册表。我想你应该能够通过这条路线修改环境变量(没有检查)。