JMagick在OS X的Eclipse中设置问题 - UnsatisfiedLinkError: java.library.path中没有JMagick

3

我在OS X的Eclipse中通过JMagick设置ImageMagick环境遇到了一些问题。安装后,我可以使用ImageMagick命令行工具(display、convert等),但无法将JMagick与Eclipse中的Java项目配合使用。

已执行以下步骤:

  1. 下载了JMagick 6.4.0
  2. 通过INSTALL文档中的make过程生成了jar和libs文件夹
  3. 从lib文件夹中复制了libJMagick.so和libJMagick-6.4.0.so到/usr/lib/java下
  4. 将JMagick.jar添加到构建路径中
  5. 链接/usr/lib/java目录到JMagick.jar本地源,这是在以下url的解决方案中trigoman推荐的:JMagick Error when trying to load a file - UnsatisfiedLink
  6. 创建了一个访问JMagick的示例类,并尝试在Eclipse中运行该类。报告异常如下:

Exception in thread "main" java.lang.UnsatisfiedLinkError: no JMagick in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1758)
at java.lang.Runtime.loadLibrary0(Runtime.java:823)
at java.lang.System.loadLibrary(System.java:1045)
at example.ImageRender.main(ImageRender.java:10)

请问有什么想法,可能是什么潜在问题?


你是否使用“-Djava.library.path=…”启动? - Viruzzo
1
@Viruzzo 是的,我已经尝试过-Djava.library.path=/usr/lib/java,这是libJMagick.so、libJMagick-6.4.0.so和一些.dylib文件所在的位置。 - random_stackoverflow_user
1个回答

3

编辑:请查看下方我的评论,关于使用im4java而非JMagick。

我曾经遇到过同样的问题,但是通过按照这些简陋的说明成功解决了: http://wesleyli.blog.com/2011/09/01/install-jmagick-on-mac/

但需要注意有一些错别字,看起来像是Lion自动更正引起的问题。 所以我所做的是:

svn co https://jmagick.svn.sourceforge.net/svnroot/jmagick jmagick
cd jmagick/trunk
./configure --with-java-home=/System/Library/Frameworks/JavaVM.framework/Versions/Current --with-magick-home=/usr/local/jmagick
sudo make all & sudo make install
sudo ln -s /usr/local/lib/libJMagick-6.5.7.so /Library/Java/Extensions/libJMagick.jnilib

现在对我来说它有效了。 :)

太好了,感谢fith。使用这些标志构建jnilib并在Eclipse中引用本地库后,我成功让它运行起来了。 - random_stackoverflow_user
2
没问题。最近我为自己的项目切换到了im4java,它不使用JNI(在Mac上支持较差),更好/仍在开发中(jmagick自2009年以来就没有更新过),并且可以在Maven存储库中获得,所以我甚至不必自己处理编译或安装任何东西。我还发现界面更加直观,并且看到了一些轻微的性能改进。唯一的限制是必须在environment.plist中设置系统范围的ImageMagick可执行文件路径才能在我的Mac开发机上运行它。http://im4java.sourceforge.net/ - fith
@fith,你能帮我解决如何在Android中使用im4java的问题吗? - Sanober Malik
不好意思,我不能做到,我从未接触过Android。 - fith

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接