Javaプログラムでコマンド実行時のエラー
Webアプリにて下記プラグラムを実行(Tomcat上で実行)したところ以下のような例外が
でました。
cd /home/test/geniatagger-3.0.1 ディレクトリに移動するコマンドで失敗しているようですが
Teraterm上で手入力で実行すると実行できます。
何が原因かわかりますでしょうか。
【例外】
java.io.IOException: Cannot run program "cd /home/test/geniatagger-3.0.1": java.io.IOException: error=2, No such file or directory
at java.lang.ProcessBuilder.start(ProcessBuilder.java:475)
at java.lang.Runtime.exec(Runtime.java:610)
at java.lang.Runtime.exec(Runtime.java:483)
【実行したプログラム】
String[] command = {"cd /home/test/geniatagger-3.0.1", "./geniatagger", "I had a pen."};
Process process = Runtime.getRuntime().exec(command);
//exec()が非同期実行であるため実行結果が返ってくるまで待つ
int no = process.waitFor();
BufferedReader in = new BufferedReader(new InputStreamReader(process.getInputStream()));
String str = "";
while (in.ready()) {
str = in.readLine();
System.out.println("segmentate=" + str);
}
in.close();
補足
上記の計算にて算出して、Javaで実行してみたら値が異なっていたため質問しました。 OracleのVMオプションのマニュアルに-Xmxが物理メモリの1/4との記述があったと思いましたが 正しい値を知っていましたら教えてください。 また、Javaで最小値などを出力するほうほうがありましたらご教授ください。