您的位置:首页 > 运维架构 > Linux

linux下的alternatives

2015-12-22 00:00 260 查看
在我的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出来了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: