在我的笔记本电脑中,我安装了 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-jre
和icedtea-8-plugin
。
我确认所有可执行文件和配置都位于/usr/lib/jvm/java-8-openjdk-amd64/
。mozilla-plugins.so
指向/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/IcedTeaPlugin.so
。itweb-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/jvm
java-<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/amd64
mozilla-javaplugin.so
但是,IcedTea-plugin7 没有在复制文件夹中放置配置或可执行文件,java-8-openjdk-amd64/jre/
这可以解释选择符号链接定义的默认/更高优先级的 jdk7 mozilla-javaplugin.so
。
由于您已经安装了 IcedTea-plugin8,因此您需要确认配置,然后尝试根据需要选择不同的 JVM。
- 关闭 FireFox
- 确认可执行文件和配置文件位于 openJDK8 复制文件夹中
/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64
和
/usr/lib/jvm/java-8-openjdk-amd64/jre/bin
- 确认配置文件的内容引用了正确的 JVM
确认符号链接的值
itweb-settings
与每个 JVM 的正确配置文件一致sudo update-alternatives --display itweb-settings
如果这适用于 jdk8,则更新每个 JVM 的替代方案
sudo update-alternatives --install mozilla-plugins.so <IcedTeaPlugin.so per JVM>
sudo update-alternatives --install itweb-settings <itweb-settings per JVM>
然后根据需要配置 itweb-settings 以使用每个 JVM
sudo update-alternatives --configure itweb-settings
- 在 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-alternatives
到auto mode
。
并确保javaws
已定义符号链接
卸载然后重新安装 v8 插件