在我的linux系统里,本来就有个jdk1.6的版本,但是已经旧了,我要换新的JDK,问题来了。
下载了最新的JDK1.7.0_09,解压出来,添加了环境变量,但是使用java -version的时候,发现还是JDK1.6那个
怎么办呢?好吧,慢慢找出来。我用whereis java
找到了java命令是调用/usr/bin/java
好吧,用ls -l /usr/bin/java又发现调用了另一个地方的。
/etc/alternatives/java 这个是什么?alternatives是什么东西。
上网一搜,果然有。
这是一个只有 root 才能执行的命令。alternatives 的意思是 “可选择的内容”。假如你的系统中有几个命令功能十分类似,却又不能随意删除,那么可以用 alternatives 来指定一个全局的设置。在 FC3 中,全局默认输入法和 java 系统等等都是用它来进行设置的。它有几种功能,可以用命令行参数来指定。alternatives --install
具体要怎么做呢?
先执行这个命令吧
sudo update-alternatives --install /usr/bin/java java /home/Android/jdk1.7.0_09/bin/java 300
其中/usr/bin/javac是最终调用选择java的命令文件,而/home/Android/jdk.....这个是我JDK的目录。现在这命令是指将我的JDK的java添加到命令的选项中。
然后再执行下面这命令
sudo update-alternatives --config java
发现什么了?发现选项了,是吧。
要维持当前值[*]请按回车键,或者键入选择的编号:
有 2 个候选项可用于替换 java (提供 /usr/bin/java)。
选择 路径 优先级 状态
------------------------------------------------------------
0 /usr/lib/jvm/java-6-openjdk-i386/jre/bin/java 1061 自动模式
* 1 /home/Android/jdk1.7.0_09/bin/java 300 手动模式
2 /usr/lib/jvm/java-6-openjdk-i386/jre/bin/java 1061 手动模式
要维持当前值[*]请按回车键,或者键入选择的编号:
很明显的,现在要输入的是你要使用哪个java了,是吧,那我要用的是1编号的的java,所以我输入1,好了。到这里就已经成功了。
我们测试下,java -version
java version "1.7.0_09"
Java(TM) SE Runtime Environment (build 1.7.0_09-b05)
Java HotSpot(TM) Server VM (build 23.5-b02, mixed mode)
1.7出来了。