2011-12-28 14 views
0

im4Javaの方法でJBoss EJBによって起動されたImageMagickを使用して、イメージファイルを生成しています。 im4Javaは、java.lang.ProcessBuilderを使用して外部プロセスを起動する、imagemagick用のJavaインタフェースです。 java.io.IOException: "/ usr/local/bin/convert"プログラムを実行できません:java.io.IOException:error = 12、メモリを割り当てることができませんJBossでの外部プロセスのメモリ割り当て

Itコマンドラインから同じプロセスを起動すると完全に動作するので、ImageMagickの問題ではないようです。しかし、外部プロセスに対するJbossのメモリ割り当てが増えています。

+0

http://stackoverflow.com/questions/1124771/how-to-solve-java-io-ioexception-error-12-cannot-allocate-memory-calling-runを参照してください。 – Ivan

+0

影響を受ける環境変数はありますかこれはあなたの設定での振る舞いの振る舞い、あるいは検索パスから読み込んだ設定ファイルでしょうか? ProcessBuilderやRuntime.execを使うと、あなたのプログラムはきれいなenvで生成されます。プログラムを特定のディレクトリから実行する必要がある場合は、それを指定する必要があります。だから、これをチェックし、私たちがもっと助けることができる質問を更新してください。 – MahdeTo

答えて

0

最後に解決されましたが、最良の方法ではない可能性があります。確かに、Ivanが示したLinuxのovercommit_memory変数の解決策を使用しましたが、もう問題はありません。しかし、このメモリのグローバル設定が、後でシステムの全体的な動作に影響を及ぼさないということは、多くのメモリを割り当てているように見えます。うまくいけば、私たちはJavaコードからimagemagickを頻繁に実行しないので、imagemagickが仕事をした後にメモリが解放されます。