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

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

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

如果我在目录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

如果在此链接中使用测试仪,它将告诉我版本是

< pre class =“ lang-none prettyprint-override”> Java Version 1.6.0_22 from Sun Microsystems Inc.

怎么了?

似乎Java Runtime Environment已更新,但是Java Compiler和用于浏览器的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浏览器插件上。

有什么想法吗?

评论

@fossfreedom我没有尝试过,因为我认为为从Java 5到6上传而明确编写它不是一个好主意吗?

hmmm-也许您可能会混淆webupd8脚本为0.5b?那是脚本的版本-它不引用Java版本。试试看。让我们看一下运行脚本时窗口的屏幕截图。

@fossfreedom是的,这完全让我感到困惑; D我运行了脚本!检查有问题的编辑!对我有很大帮助。.

多么奇怪...从未遇到过。无论如何-请看下面的答案-您应该能够按照示例使用sudo update-alternatives。

@fossfreedom再次更新了问题!

#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/


评论


它本身就改变了编译器-请参阅下面的答案以获取update-java-alternatives,它可以切换所有与Java相关的替代方法,在我的系统上是82。

–格雷格
2014年5月10日上午10:16

#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应用程序:从此答案中,您可以对JRE使用
export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::")


,对于JDK可以使用

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


。 br />

#3 楼

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

评论


我尝试了update-java-alternatives,然后java -version是正确的,但是$ JAVA_HOME中的链接仍然错误...我手动更改了该链接,但是我想知道在update-java-alternatives中是否缺少某些内容那方面。

– Alexis Wilke
16年4月16日在5:09

#4 楼

在ubuntu / linux上,您可以使用

update-alternatives --config java


切换Java版本,但是在此之前,您需要安装该版本。

您可以使用此脚本( ./install-java.sh)安装多个JVM

#!/bin/sh
(
lookforJdks=$PWD
echo "Directory: $lookforJdks"
jdks=`test -e ./javac || find $lookforJdks -type d -iname '*jdk1.*' 2> /dev/null`
#set -e
echo 'which jdk do you want to choose? looking for jdks. This might take a while'
echo "$jdks" | awk '{printf("%5d : %s\n", NR,
/opt/install-java.sh
)}' read choose test -e ./javac || cd `echo "$jdks" | tr '\n' ',' | cut -d',' -f $choose`/bin for e in appletviewer extcheck idlj jar jarsigner java javac javadoc javah javap jconsole \ jdb jhat jinfo jmap jps jrunscript jsadebugd jstack jstat jstatd native2ascii rmic \ schemagen serialver wsgen wsimport xjc jvisualvm jmc; do sudo update-alternatives \ --install /usr/bin/$e $e $(readlink -f ./$e) 100; done ) echo "RUN update-alternatives --config java"


将此脚本放在已解压缩JVM的文件夹中,然后运行:

update-alternatives --config java


下次使用:

q4312078q

#5 楼

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

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

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

#6 楼

在任何文本编辑器中打开/etc/environment并添加以下行:

JAVA_HOME="usr/lib/jvm/open-jdk 


-Java路径可能有所不同。
使用source通过运行来加载变量此命令:

source /etc/environment


然后通过运行以下命令检查变量:

echo $JAVA_HOME


使用此路径设置,请运行以下命令:

sudo  update-java-alternatives --list


选择默认的Java版本。