2016-07-13 5 views
1

javaプログラム内からtabulaツールコマンドを実行したい。私が試しているコードは次のとおりです:コマンドを実行するJavaコード

System.setProperty("user.dir", "C:\\Program Files"); 
String command ="\\tabula\\tabula-0.9.0-SNAPSHOT-jar-with-dependencies.jar "+"D:\\sample.pdf"+" -o "+"D:\\sampleeeee.csv"; 
Process p = Runtime.getRuntime().exec(command); 

それは動作していません、どんな助けてもらえます。 this command need to be executed from java

+0

こと。 –

答えて

0

コマンドを実行する作業ディレクトリを設定してください。 execを呼び出すとき

https://stackoverflow.com/a/8405745/1364747

Process p = null; 
ProcessBuilder pb = new ProcessBuilder("java","-jar","tabula-0.9.0-SNAPSHOT-jar-with-dependencies.jar", "D:\\sample.pdf", "-o", "D:\\sampleeeee.csv"); 
pb.directory("C:\\Program Files\\tabula"); 
p = pb.start(); 
+0

上記のコードでは、 "tabula-0.9.0-SNAPSHOT-jar-with-dependencies.jar"というプログラムを実行できないようなエラーが表示されています。これで私を助けてくれますか、よろしくお願いします。 – krish

+0

あなたのコマンドラインのプロンプトから画像に表示されていた?完全なコマンドは次のようなものです:java -jar tabula-0.9.0-SNAPSHOT-jar-with-dependencies.jar D:\\ sample.pdf -o D:\\ sampleeeee.csv – Teddy

+0

はい、「java -jar "を入力してください。コードにjava -jarを含めると、実行されません。 – krish

1

あなたが作業ディレクトリを指定することができます:最初の文は、あなた(または子プロセス)作業ディレクトリを変更するつもりはない

Path workingDir = Paths.get("C:\\Program Files\\tabula"); 

String[] command = { 
    "tabula-0.9.0-SNAPSHOT-jar-with-dependencies.jar", 
    "sample.pdf", 
    "-o samk.csv" 
}; 

Process p = Runtime.getRuntime().exec(command, null, workingDir.toFile()); 
+0

上記のコードを実行中にエラーが発生することはありません。 "tabula-0.9.0-SNAPSHOT-jar-with-dependencies.jar"(ディレクトリ "C:\ Program Files \ tabula"):CreateProcess error = 2、システムが指定されたファイル \t at java.lang.ProcessBuilder.start(不明なソース) – krish

関連する問題