2つのパラメーターを渡す必要がある外部プログラムを呼び出すアプリケーションを作成しようとしました。エラーは発生しません。c++で記述されたprogram.exeは写真を撮り、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);
here からこの恥ずかしさを借りた
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);
}
詳細 こちら
これは正しくない。 こちらRuntime.exec()
の使用方法。また、より現代的ないとこ ProcessBuilder
を試すこともできます。