2

の代わりにecho %path%fromの出力を印刷したい。Javacmd

次のコードがあります。

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 に答える