C++ (boost ライブラリを使用) で記述され、xcode でコンパイルされたコンソール アプリケーションがあります。この UNIX 実行可能ファイルはデーモンと通信し、特定のタスクを実行します。すべての引数を指定してコマンド ラインからこのコンソール アプリケーションを実行すると、完全に機能します。しかし、Java コードからこのコンソール アプリケーションを呼び出すと、実行されません。私はProcessBuilder
それを実行するために使用しています。同じコードを使用してシステム関連のコマンドを実行できます。私が使用しているコンソール アプリケーションは、静的ライブラリに依存しています。
Jdk - 1.7、Mac OSX - 10.7.5、XCode - 4.6.2、Boost バージョン - 1.53.0 を使用している仕様は次のとおりです。
私が使用しているコード:
String str[] = {"/bin/sh", "-c" ,"/Users/user/Downloads/cppapplication_1"};
ProcessBuilder builder = new ProcessBuilder(str);
builder.directory(new File("/Users/user/Downloads/"));
final Process process = builder.start();
process.waitFor();
InputStream is = process.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
String line;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
エラーは発生しません。そのぶら下がっています。
どんな助けでも大歓迎です。