• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Javaプログラムでコマンド実行時のエラー)

Javaプログラムでコマンド実行時のエラー

このQ&Aのポイント
  • Javaプログラムでコマンド実行時にエラーが発生しました。
  • 特定のディレクトリへの移動コマンドが失敗しているようです。
  • Teraterm上では実行できるが、Javaプログラム上では実行できないエラーが発生しています。

質問者が選んだベストアンサー

  • ベストアンサー
  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.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."}; とフルパスでコマンドを指定すればよいかと

unko347
質問者

お礼

ご回答ありがとうございました。さっそく試してみたいと思います。

関連するQ&A