从Java运行echo命令

时间:2013-01-14 07:59:26

标签: java cmd runtime.exec

我想从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

并且仅在此行之后,其余输出类似。

为什么会这样?

2 个答案:

答案 0 :(得分:3)

看起来Java附加了%path%自己的路径。没别了。

答案 1 :(得分:1)

您可能正在从IDE(例如Eclipse)运行测试。从命令行尝试相同的操作。 BTW还有另一种从Java打印环境变量的方法

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