[arch-general] Opera and Java on x86_64
Hello, I've been trying to figure out why Java applets wouldn't work on my system in Opera. (I'm using jre/jdk from [community], not openjdk6 from [extra].) From what I've found out: you set up a "Java directory" in Opera preferences (this path is then written to .opera/javapath.txt) and Opera looks for libjava.so there. At the same time Opera also looks for libjvm.so there (or it is the first place where Opera looks, more on that bellow). The problem is that jre package contains libjava.so in /opt/java/jre/lib/amd64/, while libjvm.so is in "server" subdirectory (/opt/java/jre/lib/amd64/server). That causes Opera not to find it and disable Java completely. I ran strace and these are relevant lines to show where Opera tries to find libjvm.so: open("/opt/java/jre/lib/amd64/libjvm.so", O_RDONLY) = -1 ENOENT (No such file or directory) open("/usr/lib/opera/10.00/libjvm.so", O_RDONLY) = -1 ENOENT (No such file or directory) open("/opt/java/jre/lib/amd64/libjvm.so", O_RDONLY) = -1 ENOENT (No such file or directory) open("/opt/java/jre/lib/amd64//native_threads/libjvm.so", O_RDONLY) = -1 ENOENT (No such file or directory) open("/etc/ld.so.cache", O_RDONLY) = 107 open("/lib/libjvm.so", O_RDONLY) = -1 ENOENT (No such file or directory) open("/usr/lib/libjvm.so", O_RDONLY) = -1 ENOENT (No such file or directory) This lead me to an idea of creating symlink to /opt/java/jre/lib/amd64/server/libjvm.so in /usr/lib/opera/10.00, which worked and now I can see applets in Opera properly. Now the question is, who's fault is it? Opera's? Jre's? And more importantly, can it be solved in a way that doesn't require users to create symlinks as root? Either opera package could create the aforementioned link, only that is ugly for those not using jre package. Or jre package could create the link into /opt/java/jre/lib/amd64/. Or maybe even move the files from the "server" subdirectory to the upper directory (there are only three of them and I have no idea why they are in such a subdirectory)? Does anyone have a better idea? Perhaps adding /opt/java/jre/lib/amd64/server/ to LD_LIBRARY_PATH inside the opera shell script? Ondřej -- Cheers, Ondřej Kučera
Am Wed, 30 Sep 2009 22:15:56 +0200 schrieb Ondřej Kučera <ondrej.kucera@centrum.cz>:
Does anyone have a better idea? Perhaps adding /opt/java/jre/lib/amd64/server/ to LD_LIBRARY_PATH inside the opera shell script?
Here are two methods how to using Java with Opera on x86_64 systems: http://wiki.archlinux.org/index.php/Opera#Java_on_Arch64 Heiko
Heiko Baums wrote:
Am Wed, 30 Sep 2009 22:15:56 +0200 schrieb Ondřej Kučera <ondrej.kucera@centrum.cz>:
Does anyone have a better idea? Perhaps adding /opt/java/jre/lib/amd64/server/ to LD_LIBRARY_PATH inside the opera shell script?
Here are two methods how to using Java with Opera on x86_64 systems: http://wiki.archlinux.org/index.php/Opera#Java_on_Arch64
Interesting, I didn't know about the page, thanks. Seems that setting LD_LIBRARY_PATH in .bash_profile would be the best option. Ondřej -- Cheers, Ondřej Kučera
participants (2)
-
Heiko Baums
-
Ondřej Kučera