37

2つのパラメータを渡さなければならない外部プログラムを呼び出すアプリケーションを作成しようとしました。エラーは発生しません。

program.exe、C ++で記述されており、写真を撮り、.txtファイルの内容を変更します。

Javaプログラムは実行されますが、何も実行されません-

これが私のサンプルコードです:

    String[] params = new String [3];
    params[0] = "C:\\Users\\user\\Desktop\\program.exe";
    params[1] = "C:\\Users\\user\\Desktop\\images.jpg";
    params[2] = "C:\\Users\\user\\Desktop\\images2.txt";
    Runtime.getRuntime().exec(params);
4

3 に答える 3

69

恥ずかしながらこちらからお借りしました

Process process = new ProcessBuilder("C:\\PathToExe\\MyExe.exe","param1","param2").start();
InputStream is = process.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
String line;

System.out.printf("Output of running %s is:", Arrays.toString(args));

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

詳細はこちら

ここここでコマンドを渡す方法に関するその他の問題

于 2012-12-21T13:37:11.207 に答える
14

より現代的ないとこを試すこともできますProcessBuilder:

Java Runtime.getRuntime().exec() の代替

于 2012-12-21T13:32:52.900 に答える
2
import java.io.*;

public class Code {
  public static void main(String[] args) throws Exception {
    ProcessBuilder builder = new ProcessBuilder("ls", "-ltr");
    Process process = builder.start();

    StringBuilder out = new StringBuilder();
    try (BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()))) {
        String line = null;
      while ((line = reader.readLine()) != null) {
        out.append(line);
        out.append("\n");
      }
      System.out.println(out);
    }
  }
}

オンラインで試す

于 2019-10-03T04:47:56.717 に答える