java - 从 Java 运行 echo 命令

标签 java cmd runtime.exec

我想从 Java 而不是 cmd 打印 echo %path% 的输出。

我有以下代码:

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);
    }
}

如果我从 cmd 运行 echo %path% ,输出将以以下内容开头:

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

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

为什么会发生这种情况?

最佳答案

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

关于java - 从 Java 运行 echo 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14314933/

相关文章:

java - 无法运行 EMMA 代码覆盖率

java - 使用 PID(进程 ID)切换到特定窗口

java - 更改批处理文件的内容

java - 读取进程的输出

java - 字符串到颜色

Java 持久性 (JPA) 堆问题

c++ - 制作带参数的命令行程序

python - 无法杀死/隐藏 CMD 控制台窗口

java - 如何使用 exec 在 Java 中设置环境变量?

java - 使用 try-with-resources 或在 "BufferedReader"子句中关闭此 "finally"