
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();
No.1ベストアンサー
- 回答日時:
より、exec(cmdarry,null,null)相当
→
http://docs.oracle.com/javase/jp/6/api/java/lang …[],%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."};
とフルパスでコマンドを指定すればよいかと
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Ruby 【JAVA】数字をひし形に出力するプログラムについて 2 2022/07/11 23:32
- Java java 入力 3 4 3 出力 ABC DEFG HIJ このようなプログラムの書き方を教えてくだ 2 2022/07/15 14:18
- UNIX・Linux cronの@rebootでのdateコマンドの実行につきまして 2 2023/06/11 16:23
- UNIX・Linux Linuxについて質問です。 以下のhistoryの出力結果から、sedコマンドのファイル名tmp1 1 2023/02/03 20:11
- その他(プログラミング・Web制作) python flask から fastapiへの移行時のエラー対処 1 2023/02/05 12:26
- Java マイクラjavaでForgeを入れたいのですが、インストールした.jarファイルが展開されてしまい中 1 2023/07/28 22:30
- UNIX・Linux AWSのEC2のZabbixユーザーでawscliコマンドが実行できない状態を解決する 1 2022/12/06 22:17
- Java Java です 途中は省いてますが for(int i = 0; i < 25; i ++) { s 4 2022/05/20 23:36
- Mac OS PATHを使ってcdなどで簡単に移動できるようになりたい 3 2023/05/13 14:22
- UNIX・Linux ubuntuのサーバー(virtual box)が、再起動するとデータが消えてしまいます。 4 2022/04/27 21:29
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
MacOS:ターミナルではNPMのコ...
-
コマンドを実行してコマンドラ...
-
jarファイルをバッチで実行させ...
-
Eclipseで、プロジェクト名のと...
-
マイクラjavaでForgeを入れたい...
-
正しいURL指定しているにもかか...
-
html上で、バッチやexeファイル...
-
vs codeはオフラインでも使用で...
-
javaクラスファイルをEclipseで...
-
.jarファイルの中身って書き換...
-
system.mdwを見つけることが出...
-
Eclipse・プロジェクトで、フォ...
-
NET Framework 4 v4.0.30319 ダ...
-
お世話になります。 Windows Up...
-
javaが文字コードの影響でコン...
-
Worksheet_Changeが動かない
-
Makefileの書き方
-
EclipseでGMFruntimeが必須とか...
-
eclipse で JAVAもC++も開発したい
-
シンボルを解決できません(初...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
MacOS:ターミナルではNPMのコ...
-
VBプログラムから「管理者とし...
-
batよりjava起動
-
ACCESSでタイトルバーを非表示...
-
ShellExecuteの使い方について
-
windowsのタスクスケジューラを...
-
C# コマンドプロンプト画面で表...
-
32bitアプリから64bitアプリの...
-
SYSTEM関数等を用いて複数のコ...
-
jarファイルをバッチで実行させ...
-
コマンドを実行してコマンドラ...
-
バッチファイルの書き方について
-
Java JDK1.3のインストールとpa...
-
CloudSticky.jarが起動しない。
-
Tomcatのメモリー使用量が知りたい
-
EclipseのJAVADOC生成機能について
-
コマンドプロンプトが使えない
-
実行したらがメモ帳出て来てしまう
-
VB6.0 ラベルが文字化け
-
ShellExecuteでDOSコマンド実行...
おすすめ情報