[kaffe] System.loadLibrary() should look in /lib and /usr/lib
Dalibor Topic
robilad@yahoo.com
Sun Jul 27 04:16:02 2003
Hi Mark,
sorry for me taking so long to reply, I'm now going though my mailbiox folder
with patches and suggestion, and noticed I hadn't replied.
--- Mark Wielaard <mark@klomp.org> wrote:
> Hi,
>
> When doing a System.loadLibrary() kaffe doesn't look into the standard
> /lib and /usr/lib directories for the library. But gives:
>
> java.lang.UnsatisfiedLinkError: libGTKJava: not found
> Adding its directory to LD_LIBRARY_PATH may help.
>
> And indeed adding /usr/lib (where the library is installed) to
> LD_LIBRARY_PATH seems to work, but it would be more convenient if kaffe
> would automatically load standard libraries (from /lib and /usr/lib).
I wrote a test case:
public class LibLoad {
public static void main(String [] args) {
String lpath = System.getProperty("java.library.path");
System.out.println(lpath);
System.loadLibrary(args[0]);
}
}
here's the output from JDK 1.4.2:
topic@clerks:~> /opt/j2sdk_nb/j2sdk1.4.2/bin/java LibLoad gtk
/opt/j2sdk_nb/j2sdk1.4.2/jre/lib/i386/client:/opt/j2sdk_nb/j2sdk1.4.2/jre/lib/i386:/opt/j2sdk_nb/j2sdk1.4.2/jre/../lib/i386
Exception in thread "main" java.lang.UnsatisfiedLinkError: no gtk in
java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1491)
at java.lang.Runtime.loadLibrary0(Runtime.java:788)
at java.lang.System.loadLibrary(System.java:834)
at LibLoad.main(LibLoad.java:5)
but adding the standard library paths to LD_LIBRARY_PATH works:
LD_LIBRARY_PATH=/lib:/usr/lib:/usr/local/lib/ /opt/j2sdk_nb/j2sdk1.4.2/bin/java
LibLoad dvdcss
/opt/j2sdk_nb/j2sdk1.4.2/jre/lib/i386/client:/opt/j2sdk_nb/j2sdk1.4.2/jre/lib/i386:/opt/j2sdk_nb/j2sdk1.4.2/jre/../lib/i386:/lib:/usr/lib:/usr/local/lib/
that's the way it works in kaffe, too.
Given that standard library paths are system dependant (i.e. there is no /lib
on Win32 ;), I think we should keep doing as JDK does, and use LD_LIBRARY_PATH.
Unfortunately, the Java Class Library books only specify the search order on
Win32.
cheers,
dalibor topic
__________________________________
Do you Yahoo!?
Yahoo! SiteBuilder - Free, easy-to-use web site design software
http://sitebuilder.yahoo.com