如何在 Linux 上向用户模式 ​​Firefox 添加 Java 插件

如何在 Linux 上向用户模式 ​​Firefox 添加 Java 插件

我已将 Firefox 安装到用户目录(版本 3.6.10)/cache/app/firefox

我已将 java jre1.6.0_21 安装到 /cache/app/java/jre1.6.0_21

我已经符号链接/cache/app/java/jre1.6.0_21/plugin/i386/ns7/libjavaplugin_oji.so/cache/app/firefox/plugins/libjavaplugin_oji.so

因此,理论上,当我启动 Firefox 时,插件应该列在about:config- 错了。我有很多其他插件运行正常,但 Java 没有列在任何地方。

我运行了strace -F ./firefox >/tmp/output.txt 2>&1(这-F是必要的,因为 Firefox 插件现在在分叉进程中加载​​)。Firefox 清楚地找到了我的插件:

[pid  5121] lstat64("/cache/app/firefox/plugins/libjavaplugin_oji.so", {st_mode=S_IFLNK|0777, st_size=78, ...}) = 0
[pid  5121] readlink("/cache/app/firefox/plugins/libjavaplugin_oji.so", "/cache/app/java/jre1.6.0_21/plugin/i386/ns7/libjavaplugin_oji.so"..., 4096) = 78
...
[pid  5121] lstat64("/cache/app/java/jre1.6.0_21/plugin/i386/ns7/libjavaplugin_oji.so", {st_mode=S_IFREG|0755, st_size=137021, ...}) = 0
[pid  5121] stat64("/cache/app/java/jre1.6.0_21/plugin/i386/ns7/libjavaplugin_oji.so", {st_mode=S_IFREG|0755, st_size=137021, ...}) = 0
[pid  5121] access("/cache/app/java/jre1.6.0_21/plugin/i386/ns7/libjavaplugin_oji.so", F_OK) = 0
[pid  5121] open("/cache/app/java/jre1.6.0_21/plugin/i386/ns7/libjavaplugin_oji.so", O_RDONLY) = 35
[pid  5121] read(35, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\20\250\0\0004\0\0\0\4"..., 512) = 512

显然,插件已被找到、打开,并且已读取前 512 个字节,还可能已映射内存。那么,为什么它没有出现在插件列表中呢?

一个线索可能是在默认目录中有另一个较旧的插件(我无法改变这一点,我没有root权限,因此在用户模式下运行firefox)。

[pid  5121] lstat64("/usr/lib/jvm/java-1.5.0-sun-1.5.0.22/jre/plugin/i386/ns7/libjavaplugin_oji.so", {st_mode=S_IFREG|0644, st_size=103436, ...}) = 0
[pid  5121] stat64("/usr/lib/jvm/java-1.5.0-sun-1.5.0.22/jre/plugin/i386/ns7/libjavaplugin_oji.so", {st_mode=S_IFREG|0644, st_size=103436, ...}) = 0

但是 Firefox 肯定足够聪明,能够选择并使用最新的版本?有没有办法在 Firefox 启动时打开调试功能,以便我可以找到一条调试消息来解释为什么最新的 JRE 1.6 插件被忽略了?

真令人沮丧,我在这上面花了好几个小时。

答案1

我发现http://kb.mozillazine.org/Determining_plugin_directory_on_Linux这似乎记录了搜索的地点和优先搜索的地点,但我不确定这些信息有多么过时。

另外,您使用的是 64 位还是 32 位 Firefox?64 位需要 64 位插件或特殊的解决方法。

相关内容