linux下的alternatives

来源:互联网 发布:arduino编程语言教程 编辑:程序博客网 时间:2024/06/05 14:12

在我的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 <link> <name> <path> <priority> 意思是在 alternatives 数据库中添加一个 <path>,使它成为 <link> 的可选项,优先级是 <priority>。而 <name> 则是一个中转站。这样说似乎有些抽象。

具体要怎么做呢?

先执行这个命令吧

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出来了。

原创粉丝点击