Re: concerning a lib that can't be found
Renato Serodio wrote:
> I've been experiencing some annoying behaviour on the part of my java
> applications. I've managed to track the problem to a file the java
> executable can't find. [...]
>
> Calling either from the command line works a charm. Calling any from the
> menu does...
>
> ...nothing; that is, the process is not started. On looking at
> .xsession-errors, we find the lines:
> java: error while loading shared libraries: libjli.so: cannot open
> shared object file: No such file or directory
>
> Now, the responsible lives at:
> /usr/lib/j2sdk6.0-sun/jre/lib/i386/jli/libjli.so
>
>
> Here's where the fun starts. I made a debianized version of the current
> java1.6 snapshot, and installed that. In any case, version 1.5 was
> behaving the same way..
>
> There's little around about this lib, but a post mentioned java should
> be able to find it without setting the LD_LIBRARY_PATH. "This is a job
> for... the java developers!"
For starters there is no libjli.so in Java SE 5.0.
I suspect that reason this works on the command line, but not in the menu,
is that you have set your path to include /usr/lib/j2sdk6.0-sun/bin but
that setting is not in effect at the time your window session is started.
There's a couple of workarounds
1. Give an explicit path to Java in the menu config, for example
/usr/lib/j2sdk6.0-sun/bin/java
2. Add a (synthetic) jinfo entry for JDK 6
Perhaps the easiest way to do this is to install Sun Java SE 5.0
from unstable (apt-get -t unstable sun-java5-jre) and
examine /usr/lib/jvm/.java-1.5.0-sun.jinfo
You may find it easiest to move the JDK 6 tree to a similar location
# mv /usr/lib/j2sdk6.0-sun /usr/lib/jvm/java-6-sun
And then create an appropriate jinfo file
/usr/lib/jvm/.java-6-sun.jinfo
And finally choose this implementation
# update-java-alternatives --set java-6-sun
Now /usr/bin/java will be set to point to JDK 6 (and as that is
part of the path before your window session starts it should be
found without trouble).
In any case, no, you should not have to set LD_LIBRARY_PATH -- it
*is* a job for the java developers!
HTH,
--Tom
_____________________________________________________________________________
Tom.Marble@sun.com
Senior Java Performance Engineer Sun Microsystems, Inc.
http://blogs.sun.com/tmarble What do you want from Java Libre?
Reply to: