openjdk替换java_如何将linux系统的openjdk替换为自己安装的sunjdk

本文介绍了如何在Linux系统中替换默认的OpenJDK为自行安装的SunJDK。首先确认SunJDK安装路径,然后通过`whereis java`找出系统默认Java位置。接着,利用`update-alternatives`命令更改默认Java版本,通过设置优先级和交互式选择完成SunJDK的切换。
摘要由CSDN通过智能技术生成

好久不用linux,今天装个jdk,被个open卡了2个小时,翻箱倒柜终于解决了。解决方式如下。

思路:

openjdk是系统自带的。sunjdk是系统安装的(安装路径自己一定要记得,我的安装路径一般是/usr/java)。

先把sunjdk装好,

找到linux默认jdk的文件,将其指向为自己的sunjdk。

具体办法:

不急,先运行whereis java,输出如下:

java: /usr/bin/java /etc/java /usr/lib/java /usr/share/java

/usr/java/jdk1.7.0_80/bin/java

在几个地方有java命令,其中/usr/java/jdk1.7.0_80/bin/java是我自己安装的SunJDK的java命令所在的目录,而/usr/bin/java是系统中默认安装的java命令所在的目录。

原因就在这,

我们执行

ls -la /usr/bin/java,输入如下:

lrwxrwxrwx 1 root root 22 May 14 16:53 /usr/bin/java ->

/etc/alternatives/java

一看这是一个软连接,我们cd到/etc/alternatives目录下看个究竟,

然后执行 ls -la,输入比较多,而且很多软链,其中有一个

lrwxrwxrwx 1 root root 46 May 14 18:22 java ->

/usr/lib/jvm/jre-1.7.0-openjdk.x86_64/bin/java

到此,应该明白了,java命令其实指向的是OpenJDK中的java命令,所以才会出现我们把自己安装的SunJDK的java命令配置到环境变量中后,依然不起作用。

所以我们要做的就是需要把java的软链指向我们自己安装的SunJDK的java命令,也即/opt/java/bin/java。

二、使用安装的JDK替代系统默认的OpenJDK

linux中提供了update-alternatives命令,update-alternatives是linux系统(大部分linux系统都支持此命令)中专门维护系统命令链接符的工具,通过它可以很方便的设置系统默认使用哪个命令、哪个软件版本,而所有的这些就构成了备选方案系统(alternatives

system)。

很多时候我们会将拥有相同或相似功能的不同应用程序安装在同一个操作系统上,例如同一个操作系统上的不同文本编辑器。这给了这个系统的用户在编辑文本时有了更多的选择,如果用户愿意他们可以自由选择任意一个来使用。

其实update-alternatives命令的功能很好理解,举个例子:在Window系统中,如果我们安装多个浏览器,比如有火狐、有IE、有360、有Chrome等,当我们从某个链接进去打开网页时,可能会问你使用哪个浏览器,当你选择某个浏览器时,此浏览器会问你是否把它作为默认浏览器,如果你选择了是,那下次点开某个链接时,就直接使用默认浏览器打开了!

现在我们在系统中同时安装了open jdk和sun

jdk两个版本,(由于linux发行版本中默认使用OpenJDK的java命令 )而我们又希望系统默认使用的是sun

jdk,那怎么办呢?通过update-alternatives就可以很方便的实现了。

首先运行以下命令查看java当前的默认配置

update-alternatives --display java,输出如下(后面有省略):

java - status is manual.

link currently points to

/usr/lib/jvm/jre-1.7.0-openjdk.x86_64/bin/java

/usr/lib/jvm/jre-1.7.0-openjdk.x86_64/bin/java - priority

170131

slave keytool:

/usr/lib/jvm/jre-1.7.0-openjdk.x86_64/bin/keytool

slave orbd:

/usr/lib/jvm/jre-1.7.0-openjdk.x86_64/bin/orbd

......(此处省略1万字)

可以从输出中看到系统中java默认使用的OpenJDK,其中数字170131表示优先级。

2.1 下面进入正式配置阶段

1. 把自己安装的SunJDK加入到备选系统中

运行命令(注意命令最后的数字表示优先级,其中170130 为SunJDK的alternative的优先级)

update-alternatives --install /usr/bin/java java

/usr/java/jdk1.7.0_80/bin/java 170130

2. 选择自己安装的SunJDK作为首选java命令

运行命令

update-alternatives --config java,输出如下

There are 2 programs which provide 'java'.

Selection Command

-----------------------------------------------

*+ 1 /usr/lib/jvm/jre-1.7.0-openjdk.x86_64/bin/java

2 /opt/java/bin/java

Enter to keep the current selection[+], or type selection

number:

config命令是交互式的命令,可以根据提示进行选择,此处我们选择2,即使用安装的SunJDK的java命令,然后按回车键!

至此,配置完成了!

说明:在配置步骤1中,我们指定SunJDK的优先级是170130(比当前优先级170131低),所以需要进行步骤二进行手动选择;如果我们指定的优先级比当前优先级170131高,则步骤二可以省略,系统自动会选择优先级高的作为默认alternative!

---------------------

作者:rj042

原文:https://blog.csdn.net/rj042/article/details/72034650

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值