imagemagick と Java を使用して、ファイルを png から pdf に変換しようとしています。複数のpngを実際に1つのpdfにマージするためにimagemagickコマンドを実行しているときに、すべてがうまく機能しています。コマンド自体は適切に見え、ターミナルで実行すると正常に動作しますが、アプリケーションで imgck がファイルを開けないことを示すエラーが表示されます (ファイルが存在し、フォルダーへのアクセス許可を 777 に設定しているにもかかわらず)。
line: convert: unable to open image `"/Users/mk/Documents/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/sch-java/print-1357784001005.png"': No such file or directory @ error/blob.c/OpenBlob/2642.
これは私のコマンドです:
/opt/local/bin/convert "/Users/mk/Documents/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/sch-java/print-1357784001005.png" "/Users/mk/Documents/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/sch-java/print-1357784001219.png" "/Users/mk/Documents/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/sch-java/complete-exportedPanel2013-01-1003:13:17.212.pdf"
そして私のJavaコード:
String filesString = "";
for (String s : pdfs){
filesString += "\""+ s + "\" ";
}
Process imgkProcess = null;
BufferedReader br = null;
File f1 = new File(pdfs[0]);
//returns true
System.out.println("OE: "+f1.exists());
String cmd = imgkPath+"convert "+ filesString+ " \""+outputPath+outName+"\"";
try {
imgkProcess = Runtime.getRuntime().exec(cmd);
InputStream stderr = imgkProcess.getErrorStream();
InputStreamReader isr = new InputStreamReader(stderr);
br = new BufferedReader(isr);
} catch (IOException e1) {
msg = e1.getMessage();
}
imgkProcess.waitFor();
while( (line=br.readLine() ) != null){
System.out.println("line: "+line);
}
コード全体は、フォームからリクエストを取得した後、Java サーブレット コントローラーから実行されます。これを引き起こす可能性のあるアイデアはありますか? 最新の imgck、jdk、および osx 10.7 を使用しています。