我实际上具有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浏览器插件上。
有什么想法吗?
#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版本。
评论
@fossfreedom我没有尝试过,因为我认为为从Java 5到6上传而明确编写它不是一个好主意吗?hmmm-也许您可能会混淆webupd8脚本为0.5b?那是脚本的版本-它不引用Java版本。试试看。让我们看一下运行脚本时窗口的屏幕截图。
@fossfreedom是的,这完全让我感到困惑; D我运行了脚本!检查有问题的编辑!对我有很大帮助。.
多么奇怪...从未遇到过。无论如何-请看下面的答案-您应该能够按照示例使用sudo update-alternatives。
@fossfreedom再次更新了问题!