JNI not working on SoyLatte

Landon Fuller landonf at bikemonkey.org
Thu Apr 17 18:40:16 PDT 2008


On Apr 17, 2008, at 6:29 PM, Trevor Harmon wrote:

> On Apr 16, 2008, at 10:37 AM, Landon Fuller wrote:
>
>> Do you have a stand-alone test case that works on Apple's JVM, but  
>> doesn't work on SoyLatte?
>
> Yes. Attached is a simple JNI test case. To run:
>
> javac HelloWorld.java
> javah -jni HelloWorld
> gcc -dynamiclib -I$JAVA_HOME/include HelloWorld.c -o  
> libHelloWorld.dylib
> java HelloWorld
>
> This works fine under Mac OS X 10.5.2 with the built-in Java  
> 1.5.0_13. However, if you then point JAVA_HOME to the location of  
> SoyLatte 1.0.2 and make SoyLatte's bin directory the first element  
> in the PATH, it doesn't work. I get "java.lang.UnsatisfiedLinkError:  
> no HelloWorld in java.library.path"

Thanks!

landonf at max:~/Desktop/JNI> java -Djava.library.path=`pwd` HelloWorld
Hello World!

It looks like Apple's java includes '.' in java.library.path by default:
	scala> System.getProperty("java.library.path");
	res0: java.lang.String = .:/Library/Java/Extensions:/System/Library/ 
Java/Extensions:/usr/lib/java

Whereas SoyLatte:
	scala> System.getProperty("java.library.path");
	res0: java.lang.String = /usr/local/soylatte16-i386-1.0.2/jre/lib/ 
i386/server:/usr/local/soylatte16-i386-1.0.2/jre/lib/i386:/usr/local/ 
soylatte16-i386-1.0.2/jre/../lib/i386:/usr/java/packages/lib/i386:/ 
lib:/usr/lib

Additionally, SoyLatte doesn't seem to be respecting DYLD_LIBRARY_PATH.

-landonf
-------------- next part --------------
A non-text attachment was scrubbed...
Name: PGP.sig
Type: application/pgp-signature
Size: 186 bytes
Desc: This is a digitally signed message part
Url : http://mail.openjdk.java.net/pipermail/porters-dev/attachments/20080417/0b88a9da/attachment.bin 


More information about the porters-dev mailing list