2013-08-29 85 views
0

我们的一个应用程序依赖于由我们的服务器安装设置的环境变量的存在。在安装服务器后,我可以使用'环境变量'对话框确认这个变量的存在。但是,当客户端应用程序执行时,调用set命令和Java的方法忽略此变量,所有其他变量都存在。有趣的是,这种读取特定环境变量的失败只发生在Windows 7 64-bit machine上,在Windows XP 32-bit这没有发生。 32位机器上的相同代码返回由我们的服务器安装设置的环境变量。我不确定Windows 7Windows XP之间的区别是否在这里起作用。有没有人对如何解决这个问题有任何建议?执行设置命令时不显示环境变量

+0

'getEnv'在所有平台上返回一个区分大小写的'map'。顺便说一下,'System.getProperties()'的结果是什么?是否包含您正在搜索的env变量? –

+0

@Ravinder它没有。我想是因为我不是一个系统属性? –

回答

1

事实证明,我不知道这一点,Windows 7中有两个CMD.EXE命令 - 一个32位和一个64位环境。当我为32位环境运行cmd.exe时,我没有看到我的变量,但是当我为64位环境运行cmd.exe时,变量就在那里。

0

几件事情要检查

1)会发生什么,当你键入echo %VARNAME%很可能不是太远什么Java正在做幕后。

2)这是一个系统广泛的环境变量或每个用户吗?它不应该有所作为,但它可能会

3)你可以发布你的代码。下面的snippit对我来说工作得很好,这是否适合你?

String path = System.getenv("PATH");

+0

1)没有输出打印,当我执行设置命令我的变量,这是一个系统变量不打印。 2)这是一个系统变量 3)这是我正在使用的代码,并且都产生相同的结果: p = r.exec(“cmd.exe/c set”); // $ NON-NLS-1 $ Map getenv = System.getenv(); –

+0

我为我的问题添加了答案,谢谢你的帮助。 –

相关问题