jmagick在ubuntu上失败,在OSX上运行正常

时间:2014-02-17 18:55:25

标签: java ubuntu java-native-interface imagemagick jmagick

运行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&amp; / 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

1 个答案:

答案 0 :(得分:0)

通常,UnsatistfiedLinkError意味着您需要将jvm指向本机所在的位置。使用-Djava.library.path =“your / path / to / library / natives”来设置它们的路径。