10

Java 実行可能ファイルとは別のディレクトリにあるバッチ ファイルを実行しようとしています。私は次のコードを持っています:

    try {
        Process p =  Runtime.getRuntime().exec("cmd /c start \"C:\\Program Files\\salesforce.com\\Data Loader\\cliq_process\\upsert\\upsert.bat\"") ;           
    } catch (IOException ex) {
    }

その結果、プログラムは、プログラムが実行されたルート ディレクトリで cmd ウィンドウを開き、指定したファイル パスにはアクセスしません。

4

5 に答える 5

33

ではなく、メソッド シグネチャRuntime.exec(String command)を使用する必要があります。exec(String command, String[] envp, File dir)

Process p =  Runtime.getRuntime().exec("cmd /c upsert.bat", null, new File("C:\\Program Files\\salesforce.com\\Data Loader\\cliq_process\\upsert"));

しかし、個人的にProcessBuilderは、代わりに を使用します。これは、 Runtime.exec().

ProcessBuilder pb = new ProcessBuilder("cmd", "/c", "upsert.bat");
File dir = new File("C:/Program Files/salesforce.com/Data Loader/cliq_process/upsert");
pb.directory(dir);
Process p = pb.start();
于 2013-09-30T20:58:41.837 に答える
2

あなたのコードは問題ありませんが、問題はバッチ ファイル内にあります。

Bat ファイルの内容を表示する必要があります。問題は、bat ファイル内のパスにあります。

于 2013-09-30T21:07:55.347 に答える
0
import java.lang.Runtime;

Process run = Runtime.getRuntime().exec("cmd.exe", "/c", "Start", "path of the bat file");

これはあなたのために働き、使いやすいです。

于 2016-02-08T17:55:13.740 に答える