我们的一个应用程序依赖于我们的服务器安装设置的环境变量的存在。安装服务器后,我可以使用“环境变量”对话框确认是否存在此变量。但是,当客户端应用程序执行时,调用set命令和Java的 System.getenv()
方法将省略此变量,其他所有变量都存在。有趣的是,这种读取特定环境变量的失败只发生在Windows 7 64-bit machine
上,Windows XP 32-bit
这种情况不会发生。 32位机器上的相同代码返回由我们的服务器安装设置的环境变量。我不确定Windows 7
和Windows XP
之间的差异是否起作用。有人对如何处理这个问题有任何建议吗?
答案 0 :(得分:1)
事实证明,我不知道这一点,Windows 7有两个cmd.exe命令 - 一个用于32位,一个用于64位环境。当我为32位环境运行cmd.exe时,我没有看到我的变量,但是当我为64位环境运行cmd.exe时,变量就在那里。
答案 1 :(得分:0)
要检查的几件事
1)当你输入echo %VARNAME%
时会发生什么事情,这可能与Java在幕后所做的事情相差太远。
2)这是一个系统范围的环境变量还是每个用户一个?它不应该有所作为,但它可能
3)你能发布你的代码吗?下面的snippit对我来说很好,这对你有用吗?
String path = System.getenv("PATH");