Jmagick on OSX: UnsatisfiedLinkError
Having surrendered this half a year ago, I now see the need to have jmagick in my osx java projects again...
I tried Eric O’Laughlen's JMagick OS X Leopard Port as a base: http://velocipeek.com/2008/02/19/jmagick-os-x-leopard-port/ . I want to build from JMagick from source, but I'm quite happy to use the pre-installed ImageMagick.
As my ImageMagick base I have the latest Macports ImageMagick: @6.4.1-3_0+q16.
First I tried using defaults. This created .so-libraries and failed miserably with make test.
./configure --prefix=/finntech/apps/jmagick
...
[fiersche@FI-BP-735:~/Downloads/JMagick-6.2.6-0-OSX-10.5.1-0-src] $ make test
cd src/test; make test
LD_LIBRARY_PATH=:../../lib: DYLD_LIBRARY_PATH=:../../lib: /System/Library/Frameworks/JavaVM.framework/Versions/1.6/bin/java -classpath /Users/fiersche/Downloads/JMagick-6.2.6-0-OSX-10.5.1-0-src/classes test.Test
Exception in thread "main" java.lang.UnsatisfiedLinkError: no JMagick in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1753)
at java.lang.Runtime.loadLibrary0(Runtime.java:823)
at java.lang.System.loadLibrary(System.java:1030)
at magick.MagickLoader.<clinit>(MagickLoader.java:13)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at java.lang.Class.newInstance0(Class.java:355)
at java.lang.Class.newInstance(Class.java:308)
at magick.Magick.<clinit>(Magick.java:21)
at test.Test.main(Test.java:55)
make[1]: *** [test] Error 1
make: *** [test] Error 2
Then I tried a seemingly easy fix :), adding the .dylib extension, as Eric tipped in his page. This also failed, but differently:
./configure --prefix=/finntech/apps/jmagick --with-shared-lib-ext=.dylib
...
[fiersche@FI-BP-735:~/Downloads/JMagick-6.2.6-0-OSX-10.5.1-0-src] $ make test
cd src/test; make test
LD_LIBRARY_PATH=:../../lib: DYLD_LIBRARY_PATH=:../../lib: /System/Library/Frameworks/JavaVM.framework/Versions/1.6/bin/java -classpath /Users/fiersche/Downloads/JMagick-6.2.6-0-OSX-10.5.1-0-src/classes test.Test
Exception in thread "main" java.lang.UnsatisfiedLinkError: /Users/fiersche/Downloads/JMagick-6.2.6-0-OSX-10.5.1-0-src/lib/libJMagick-6.2.6.dylib:
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1822)
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1746)
at java.lang.Runtime.loadLibrary0(Runtime.java:823)
at java.lang.System.loadLibrary(System.java:1030)
...
Then I tried the tricks from the OSX readme in Eric's binary distribution:
sudo cp -i ./libJMagick-6.2.6.dylib /usr/local/lib
sudo ln -s /usr/local/lib/libJMagick-6.2.6.dylib /usr/local/lib/libJMagick.dylib
sudo cp -i ./jmagick-6.2.6.jar /System/Library/Frameworks/JavaVM.framework/Home/lib/ext
But "make test" failed in the same way.
Does anyone have a pointer into which direction I should look?
Erlend :)
_______________________________________________
JMagick mailing list
JMagick@...
http://www.yeo.id.au/mailman/listinfo/jmagickPlease ensure that
JMagick@... is a recipient when replying.