Firefox无法在ubuntu 15.04中获取最新的java版本:配置iceatea-8-plugin,但oracle java版validation页面可以

在我的笔记本电脑中,我安装了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 version verify页面看到我最新的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版validation页面可以正确显示我的java版本是1.8.0_45-internal 。 有没有人知道firefox如何在笔记本电脑上发现java版本?

UPDATE2:

谢谢@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也指向正确的版本。

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

UPDATE2:

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

目前,Ubuntu软件中心的IcedTea安装是IcedTea-plugin7,然后它的配置导致FireFox报告的不正确的JVM版本about:plugins和Oracle浏览器测试 – 尽管事先安装了OpenJDK8。 可能的解释是IcedTea通过在/usr/lib/jvm创建目录来配置自己的方式,其名称前缀为java--openjdk即使这些JVM未安装在计算机上也是如此。

  • 的java -6-的openjdk-AMD64
  • 的java -7-的openjdk-AMD64
  • 的java -8-的openjdk-AMD64

然后,为安装的jdk和默认的jdk1.7创建symLinks到这些文件夹 – 在安装了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

和位于/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64位置可执行的IcedTeaPlugin.so链接mozilla-javaplugin.so

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

因为,您已经安装了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. 确认symlink itweb-settings的值为每个JVM的正确配置文件sudo update-alternatives --display itweb-settings

  3. 如果这适用于jdk8,那么每个JVM的update-alternatives

    sudo update-alternatives --install mozilla-plugins.so
    sudo update-alternatives --install itweb-settings

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

sudo update-alternatives --configure itweb-settings

  1. 检查Firefox中的JVM版本

****** UPDATE3 ******

itweb-settings配置文件引用; deploy.properties的HOME目录中的两个可能路径

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

和全局路径/etc/.java/.deploy/deployment.properties

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

****** UPDATE4 ******

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

并确保定义了javaws的符号链接

卸载然后重新安装v8插件