1

Runtime exec(Java) を使用していくつかの .bat コマンドを実行しようとしています。問題は、環境変数を設定した後、これらの変数を使用できないことです。

Runtime rt = Runtime.getRuntime();
Process pr;
pr = rt.exec("cmd.exe /c echo %JAVA_HOME%");
InputStream is;
InputStreamReader isr;
BufferedReader reader ;
String line;
is = pr.getInputStream();
isr = new InputStreamReader(is);
reader = new BufferedReader(isr);

while ((line = reader.readLine()) != null) {
System.out.println(line);
}
reader.close();
pr.getOutputStream().close();`

JAVA_HOME は実際の環境パスを返しません。

4

1 に答える 1

1

コードは私にとって完璧に機能しました。

try {
            Runtime rt = Runtime.getRuntime();
            Process pr;
            pr = rt.exec("cmd.exe /c echo %JAVA_HOME%");
            InputStream is;
            InputStreamReader isr;
            BufferedReader reader;
            String line;
            is = pr.getInputStream();
            isr = new InputStreamReader(is);
            reader = new BufferedReader(isr);

            while ((line = reader.readLine()) != null) {
                System.out.println(line);
            }

            reader.close();
            pr.getOutputStream().close();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

うまくいかない場合は、

  1. 環境変数 %JAVA_HOME% が正しく定義されていることを確認してください。コマンド プロンプトを起動し、出力を共有するcmd.exe /c echo %JAVA_HOME%
  2. プログラムの実行に IDE を使用していますか?
于 2013-08-13T01:59:36.547 に答える