javaを使って外部アプリを開きたいです。
Process p = Runtime.getRuntime().exec("/Users/kausar/myApp");
アクティビティモニターで確認できるように、これによりプロセスが実行されます。今私が実行するファイルは実際にはコンソールアプリであり、コマンドを受け取り、それらのコマンドに基づいて応答を返します。たとえば、ターミナルに行って同じものを入れた場合
Kausars-MacBook-Air:~ kausar$ /Users/kausar/myApp
myApp>
これで、たとえばアプリにコマンドを与えることができます
myApp> SHOW 'Hi There'
これらは、コンソール アプリでキーボード入力として取得されるコマンドであり、パラメーターではありません。パラメータを使用したさまざまなアプローチを見てきました。以下も試してみましたが、うまくいきませんでした。
String res;
String cmnd = "SHOW \'Hi There\'";
OutputStream stdin = null;
InputStream stdout = null;
stdout = p.getInputStream();
stdin = p.getOutputStream();
stdin.write(cmnd.getBytes());
stdin.flush();
p.waitFor();
BufferedReader input = new BufferedReader(
new InputStreamReader(stdout));
while ((res = input.readLine()) != null) {
System.out.println(res)
}
input.close();
p.destroy();
「/bin/bash -c ls」を使用した同じ手順が正常に機能している間、何も表示されません。助けてください!