- ベストアンサー
Javaプログラムでコマンド実行時のエラー
- Javaプログラムでコマンド実行時にエラーが発生しました。
- 特定のディレクトリへの移動コマンドが失敗しているようです。
- Teraterm上では実行できるが、Javaプログラム上では実行できないエラーが発生しています。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
http://docs.oracle.com/javase/jp/6/api/java/lang/Runtime.html#exec(java.lang.String[]) より、exec(cmdarry,null,null)相当 → http://docs.oracle.com/javase/jp/6/api/java/lang/Runtime.html#exec(java.lang.String[],%20java.lang.String[],%20java.io.File) より > パラメータ: > cmdarray - 実行するコマンドと引数を含む配列 ということで、 String[] command = {"cd /home/test/geniatagger-3.0.1", "./geniatagger", "I had a pen."}; Process process = Runtime.getRuntime().exec(command); は "cd /home/test/geniatagger-3.0.1" というコマンドを "./geniatagger", "I had a pen." の2つの引数で実行したものになります。 "cd"コマンドに"/home/test/geniatagger-3.0.1" を引数にしたものではありません。 普通"cd /home/test/geniatagger-3.0.1"なんてコマンドは無いので、No such file or directoryになるでしょう。 2つのコマンドを一つのプロセスで実行させたいなら、シェルに実行させるようにします。 String[] command = {"sh", "-c","cd /home/test/geniatagger-3.0.1 ; ./geniatagger 'I had a pen.'"}; あるいは、geniataggerが実行できればよい(カレントディレクトリが関係無い)なら、 String[] command = {"/home/test/geniatagger-3.0.1/geniatagger", "I had a pen."}; とフルパスでコマンドを指定すればよいかと
お礼
ご回答ありがとうございました。さっそく試してみたいと思います。