使用eclipse的PATH变量与系统变量不同

时间:2014-08-14 12:28:08

标签: eclipse processbuilder path-variables

这个小的java代码在执行环境中产生不同的输出:

ProcessBuilder builder = new ProcessBuilder( "cmd", "/c", "set" );
builder.directory( new File("c:/") );
Process p = builder.start();

System.out.println(System.getenv("PATH"));

如果在命令promt上执行,它将声明完整的PATH变量,该变量也通过导航到Systenproperties-> Environmentvariables(PATH)或使用cmd,输入set,并查找PATH变量来显示。

Path=C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\Perforce;C:\Program Files\GnuWin32\bin;

如果在eclipse中执行,它也会声明一个PATH变量,但它与系统本身的变量不一致。

Path=C:/Program Files/Java/jre7/bin/client;C:/Program Files/Java/jre7/bin;C:/Program Files/Java/jre7/lib/i386;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\Perforce;C:\eclipse;

问题是,我需要使用processbuilder在我的java环境中运行外部应用程序(openssl)。该应用程序的路径也在Path变量中声明。但是如果使用eclipse执行代码(在这种情况下必须执行),则此路径不可用。

所以我完全不知道为什么会这样,以及如何解决它。 我甚至尝试将执行类流式传输到hdd并尝试使用另一个流程构建器执行该类,但Path变量仍然不等于预期的一个(由于继承而猜测)

如果你们中的一些人有任何线索如何使用eclipse获取与Path变量相同的内容,请指出它。

顺便说一句。使用WINDOWS机器&使用Kepler build

0 个答案:

没有答案