如何设置默认 Java 版本?

如何设置默认 Java 版本?

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

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

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

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

$ ls -l /usr/lib/jvm
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输出将如下:

$ 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)

仍存在问题,如果运行,javac -version它会给我安装的旧版本:

$ javac -version
javac 1.6.0_22

如果我使用测试仪关联它会告诉我版本是

Java Version 1.6.0_22 from Sun Microsystems Inc.

发生什么问题了?

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

我该如何更新它们?


其他添加部分

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

$ 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 浏览器插件上。

有任何想法吗?

答案1

关于你的第一个问题:

您可能对 webupd8 脚本是 0.5b 感到困惑。这是脚本的版本 - 它不是指 Java 版本。

进一步进行javac版本的设置。

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

IE

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 插件。

主要问题:

如何安装 Oracle JDK 6?

包含此信息 - 由于您的文件夹结构略有不同,您的链接命令应该是:

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

答案2

; 跑步

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:这个答案您可以使用

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。

答案3

我认为您应该查看软件包update-java-alternatives中的命令java-common及其*.jinfo使用的文件。这样,您应该能够在 Java 安装之间完全切换(无论 JDK、JRE 等)。

答案4

如果您要手动设置 javac javaws javadoc 或任何其他 java 相关命令的替代,您可能希望使它们成为 java 替代的从属。

sudo update-alternatives --install "/usr/bin/java" "java" "/opt/jdk1.8.0_74/bin/java" 0 --slave "/usr/bin/javadoc" "javadoc" "/opt/jdk1.8.0_74/bin/javadoc"


update-alternatives: updating alternative /opt/jdk1.8.0_74/bin/java because link group java has changed slave links


:/opt/jdk1.8.0_74$ sudo update-alternatives --display java

java - 自动模式 链接最佳版本是 /opt/jdk1.8.0_74/bin/java 链接当前指向 /opt/jdk1.8.0_74/bin/java 链接 java 是 /usr/bin/java 从属 javadoc 是 /usr/bin/javadoc /opt/jdk1.8.0_74/bin/java - 优先级 0 从属 javadoc:/opt/jdk1.8.0_74/bin/javadoc

将 /opt/jdk1.8.0_74/ 更改为安装 jdk 的目录。

相关内容