2

我想打印echo %path%fromJava而不是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

并且只有在这一行之后,其余的输出是相似的。

为什么会这样?

4

2 回答 2

3

看起来像Java附加到%path%自己的路径。没有其他的。

于 2013-01-14T08:01:49.313 回答
1

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

System.out.println(System.getenv("PATH"));
于 2013-01-14T08:24:22.833 回答