我想从echo %path%
而不是Java
打印cmd
的输出。
我有以下代码:
private void getPath() throws IOException {
String getPath = "cmd.exe /C echo %path%";
Runtime rt = Runtime.getRuntime();
Process proc = rt.exec(getPath);
BufferedReader reader = new BufferedReader(new InputStreamReader(proc.getInputStream()));
String commandOutput = "";
while (commandOutput != null) {
commandOutput = reader.readLine();
System.out.println(commandOutput);
}
}
如果我从echo %path%
运行cmd
,则输出以:
C:\ Oracle \ Ora11 \ bin; C:\ Oracle \ Ora10 \ bin; C:\ Program Files \ Common
但Java
程序的输出以:
C:/ Program Files / Java / jre7 / bin / client; C:/ Program Files / Java / jre7 / bin; C:/ Program Files / Java / jre7 / lib / i386
并且仅在此行之后,其余输出类似。
为什么会这样?
答案 0 :(得分:3)
看起来Java
附加了%path%
自己的路径。没别了。
答案 1 :(得分:1)
您可能正在从IDE(例如Eclipse)运行测试。从命令行尝试相同的操作。 BTW还有另一种从Java打印环境变量的方法
System.out.println(System.getenv("PATH"));