Firefox 无法在 ubuntu 15.04 中的 about:configs 中使用 iceatea-8-plugin 获取最新的 java 版本,但 oracle java 版本验证页面可以

Firefox 无法在 ubuntu 15.04 中的 about:configs 中使用 iceatea-8-plugin 获取最新的 java 版本,但 oracle java 版本验证页面可以

在我的笔记本电脑中,我安装了 openjdk1.6、openjdk-1.7 和 openjdk1.8。我可以通过 查看它们update-alternative --config java

$update-alternatives --config java
There are 3 choices for the alternative java (providing /usr/bin/java).

  Selection    Path                                            Priority   Status
------------------------------------------------------------
* 0            /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java   1081      auto mode
  1            /usr/lib/jvm/java-6-openjdk-amd64/jre/bin/java   1061      manual mode
  2            /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java   1071      manual mode
  3            /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java   1081      manual mode

我也openjdk-7-plugin安装了。但我不知道为什么我的 Firefox 总是显示我最新的 Java 版本是

application/x-java-bean;jpi-version=1.7.0_50

我已经尝试过重新初始化插件数据库,但它不起作用。我如何在浏览器插件中查看我的最新 Java?我可以通过oracle java 版本验证页面

更新:

我安装了icedtea-8-plugin然后删除了icedtea-7-plugin。但是,about:plugins 显示我的 java 版本是application/x-java-bean;jpi-version=1.6.0_50。插件路径正确指向

Path: /usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/IcedTeaPlugin.so

oracle java 版本验证页面可以正确显示我的 java 版本是1.8.0_45-internal。有人知道 Firefox 如何发现我笔记本电脑上的 java 版本吗?

更新2:

感谢@TrevorL 的详细回答。

现在我删除了openjdk-*系统中的所有软件包。我唯一安装的是openjdk-8-jreicedtea-8-plugin

我确认所有可执行文件和配置都位于/usr/lib/jvm/java-8-openjdk-amd64/mozilla-plugins.so指向/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/IcedTeaPlugin.soitweb-settings也指向正确的版本。

我确实看到 Firefox 在 中使用了正确的 IcedTeaPlugin.so about:plugins。由于我现在系统中只安装了 1 个版本的 jvm。我认为问题应该修改为:为什么 icedtea-8-plugin 中的 icedteaplugin.so 在 Firefox 中报告 java 1.6.0_50

答案1

更新2:

启动时,Firefox 会引用位于 中的 java 插件文件/usr/lib/mozilla/plugins,该文件可以命名libjavaplugin.so为或mozilla-javaplugin.so

目前,Ubuntu 软件中心安装的 IcedTea 是 IcedTea-plugin7,因此其配置导致 FireFox 和 Oracle 浏览器测试报告的 JVM 版本不正确- 尽管之前安装了 OpenJDK8。一种可能的解释是 IcedTea 通过在名称前加上about:plugins前缀来创建目录来配置自身,即使这些 JVM 未安装在计算机上。/usr/lib/jvmjava-<version>-openjdk<bits>

  • Java-6-openjdk-amd64
  • Java-7-openjdk-amd64
  • Java-8-openjdk-amd64

然后为已安装的 jdk 和默认 jdk1.7(如果安装了 openjdk8)创建到这些文件夹的符号链接。

  • java-1.7.0-openjdk-amd64
  • java-1.8.0-openjdk-amd64(已安装 openJDK)

符号链接itweb-settings配置为引用在每个 JVM 副本文件夹中创建的配置文件的替代方案

  • /usr/lib/jvm/java-6-openjdk-amd64/jre/bin/itweb-settings
  • /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/itweb-settings

以及链接引用IcedTeaPlugin.so位置的可执行文件/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64mozilla-javaplugin.so

但是,IcedTea-plugin7 没有在复制文件夹中放置配置或可执行文件,java-8-openjdk-amd64/jre/这可以解释选择符号链接定义的默认/更高优先级的 jdk7 mozilla-javaplugin.so

由于您已经安装了 IcedTea-plugin8,因此您需要确认配置,然后尝试根据需要选择不同的 JVM。

  1. 关闭 FireFox
  2. 确认可执行文件和配置文件位于 openJDK8 复制文件夹中

/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64

/usr/lib/jvm/java-8-openjdk-amd64/jre/bin
  1. 确认配置文件的内容引用了正确的 JVM
  2. 确认符号链接的值itweb-settings与每个 JVM 的正确配置文件一致 sudo update-alternatives --display itweb-settings

  3. 如果这适用于 jdk8,则更新每个 JVM 的替代方案

    sudo update-alternatives --install mozilla-plugins.so <IcedTeaPlugin.so per JVM>
    sudo update-alternatives --install itweb-settings <itweb-settings per JVM>

  4. 然后根据需要配置 itweb-settings 以使用每个 JVM

sudo update-alternatives --configure itweb-settings

  1. 在 Firefox 中检查 JVM 版本

****** 更新3 ******

itweb-settings配置文件引用;从 HOME 目录到deployment.properties

  • ~/.config/icedtea-web/deployment.properties
  • ~/.icedtea/deployment.properties

和一条全球路径 /etc/.java/.deploy/deployment.properties

也许其中一个文件引用了 openJdk6 ?

****** 更新4 ******

该插件依赖于符号链接优先级,因此请确保 jdk8 具有最高优先级优先事项 然后update-alternativesauto mode

并确保javaws已定义符号链接

卸载然后重新安装 v8 插件

相关内容