当前位置: 首页>>技术问答>>正文


如何设置默认的Java版本?

, ,

问题描述

我遵循了question中的所有说明,但在最后一部分遇到了一些问题。

我实际上有Java的6.22版本,并且想要更新到6.30版本。

因此,在将提取的目录java-6-oracle移动到/usr/lib/jvm后,我不知道该怎么做,因为上面的答案中指出的脚本从java 5更新为java 6。

为了清晰起见,如果我在/usr/lib/jvm目录中执行ls,则输出如下:

matteo@matteo-ThinkPad-SL:/usr/lib/jvm$ ls -l

total 8

lrwxrwxrwx 1 root root 14 2011-07-12 15:18 default-java -> java-6-openjdk

lrwxrwxrwx 1 root root 14 2011-07-12 12:19 java-1.6.0-openjdk -> java-6-openjdk

drwxr-xr-x 10 root root 4096 2012-04-12 12:06 java-6.31-oracle

drwxr-xr-x 7 root root 4096 2012-02-24 14:43 java-6-openjdk

我现在应该怎么做?


添加部分

在@fossfreedom的建议下,我仍然运行脚本,实际上它更新了Java版本。

事实上,如果我运行命令java -version输出将如下:

matteo@matteo-ThinkPad-SL:~$ java -version
java version "1.6.0_31"
Java(TM) SE Runtime Environment (build 1.6.0_31-b04)
Java HotSpot(TM) Server VM (build 20.6-b01, mixed mode)

还有一个问题,如果Irun javac -version它给我安装旧版本:

matteo@matteo-ThinkPad-SL:~$ javac -version
javac 1.6.0_22

如果我在这个link上使用测试仪,它会告诉我该版本是

Java Version 1.6.0_22 from Sun Microsystems Inc.

出了什么问题?

看起来Java运行时环境已经更新,但Java编译器和Java浏览器插件没有。

我如何更新它们?


其他补充部分

sudo update-alternatives --config java将返回以下输出

matteo@matteo-ThinkPad-SL:~$ sudo update-alternatives --config java
There are 2 choices for the alternative java (providing /usr/bin/java).

  Selection    Path                                      Priority   Status
------------------------------------------------------------
* 0            /usr/lib/jvm/java-6.31-oracle/bin/java     1062      auto mode
  1            /usr/lib/jvm/java-6-openjdk/jre/bin/java   1061      manual mode
  2            /usr/lib/jvm/java-6.31-oracle/bin/java     1062      manual mode

Press enter to keep the current choice[*], or type selection number:

这些与JRE正确更新到版本6.31这一事实有关,问题在Java编译器和Java浏览器插件上。

有任何想法吗?

最佳解决办法

回答你的第一个问题:

可能你可能会混淆webupd8脚本是0.5b。这是脚本的版本 – 它不涉及Java版本。

进一步设置javac版本。

我怀疑你需要明确地给出javac编译器的路径

sudo update-alternatives --install "/usr/bin/javac" "javac" "/usr/lib/jvm/java-6.31-oracle/bin/javac" 1

其次是:

sudo update-alternatives --config javac

关于设置java chrome插件。

主要问题:

How do I install Oracle JDK 6?

包括这些信息 – 因为你的文件夹结构略有不同,你的链接命令应该是:

ln -s /usr/lib/jvm/java-6.31-oracle/jre/lib/i386/libnpjp2.so ~/.mozilla/plugins/

次佳解决办法

我想你应该看看java-common包中的update-java-alternatives命令和它使用的*.jinfo文件。因此,您应该能够在Java安装(不管JDK,JRE,…)之间完全切换。

第三种解决办法

参见this;跑

sudo  update-java-alternatives --list

按名称和目录列出机器上的所有Java安装,然后运行

sudo  update-java-alternatives --set [JDK/JRE name e.g. java-8-oracle]

选择使用哪个JRE /JDK。

如果要为每个Java任务使用不同的JDK /JRE,可以运行update-alternatives以一次配置一个java可执行文件;你可以跑步

sudo  update-alternatives --config java[Tab]

查看可以配置的Java命令(java,javac,javah,javaws等)。接着

sudo  update-alternatives --config [javac|java|javadoc|etc.]

将该Java任务/命令与特定的JDK /JRE相关联。

您可能还需要为某些应用程序设置JAVA_HOME:您可以使用this answer

export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::")

对于JRE,或者

export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:jre/bin/java::")

对于JDK。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/952.html,未经允许,请勿转载。