我遵循了此处所述的所有说明问题,但在最后一部分遇到了一些问题。
我实际上拥有 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 插件。
主要问题:
包含此信息 - 由于您的文件夹结构略有不同,您的链接命令应该是:
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 的目录。