我在运行 jmagick 应用程序时遇到错误(在本例中是对 ubuntu 的测试)。我已经安装了以下内容,但是在运行测试时仍然出现以下错误
sudo apt-get install imagemagick libmagickcore-dev
sudo apt-get install ghostscript
sudo apt-get install jmagick
当我运行测试时,我得到:
Running com.myapp.pdfservice.PdfServiceTest
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 1.892 sec <<< FAILURE!
convertPdf(com.myapp.pdfservice.PdfServiceTest) Time elapsed: 1.701 sec <<< ERROR!
java.lang.UnsatisfiedLinkError: magick.Magick.init()V
at magick.Magick.init(Native Method)
at magick.Magick.<clinit>(Magick.java:40)
正如我在主题中提到的,这在 OSX 上运行良好,但我不确定我需要在 Ubuntu 上做什么才能使其工作。
有什么想法吗?
这是修复:
原来 jmagick 的 apt-get 安装没有将正确的库安装到 /usr/lib 和 /usr/lib/jni。
诀窍是下载源代码,构建并覆盖由 apt-get 安装的源代码:
svn checkout svn://svn.code.sf.net/p/jmagick/code/trunk jmagick-code
./configure --with-java-home=/usr/lib/jvm/java-7-openjdk-amd64 --with-magick-home=/usr/local/jmagick
make all & make install
sudo cp /usr/local/lib/libJMagick-6.6.9.so /usr/lib/libJMagick.so
sudo cp /usr/local/lib/libJMagick-6.6.9.so /usr/lib/jni/libJMagick.so