专栏首页小狼的世界将Linux默认的OpenJDK替换为Oracle JDK

将Linux默认的OpenJDK替换为Oracle JDK

在使用Logstash安装插件的时候,发生了一个错误,如下:

ERROR: Something went wrong when installing logstash-input-jdbc, message: java.security.KeyException

经查可能是与系统自带的OpenJDK有关,解决方案是将系统自带的OpenJDK更新为Oracle的JDK。

[cloud@localhost ~]$ java -version
openjdk version "1.8.0_141"
OpenJDK Runtime Environment (build 1.8.0_141-b16)
OpenJDK 64-Bit Server VM (build 25.141-b16, mixed mode)

下载 Oracle JDK

首先从 Oracle网站下载所需的JDK。

我下载的是 1.8 版本的 rpm 安装包,因为 Elasticsearch 套装需要Java 1.8。

安装Oracle JDK

使用如下命令进行安装

[root@localhost cloud]# rpm -ivh jdk-8u144-linux-x64.rpm 
Preparing...                          ################################# [100%]
Updating / installing...
   1:jdk1.8.0_144-2000:1.8.0_144-fcs  ################################# [100%]
Unpacking JAR files...
    tools.jar...
    plugin.jar...
    javaws.jar...
    deploy.jar...
    rt.jar...
    jsse.jar...
    charsets.jar...
    localedata.jar...

使用update-alternative配置java

首先执行 update-alternative —list java 看一下系统中有几个java版本。

[root@localhost cloud]# update-alternatives --display java
java - status is auto.
 link currently points to /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.141-1.b16.el7_3.x86_64/jre/bin/java
/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.51-2.4.5.5.el7.x86_64/jre/bin/java - priority 170051
 slave ControlPanel: (null)
 slave javaws: (null)
 slave jcontrol: (null)
 slave jjs: (null)
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.141-1.b16.el7_3.x86_64/jre/bin/java - family java-1.8.0-openjdk.x86_64 priority 1800141
 slave ControlPanel: (null)
 slave javaws: (null)
 slave jcontrol: (null)
 slave jjs: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.141-1.b16.el7_3.x86_64/jre/bin/jjs
/usr/java/jdk1.8.0_144/jre/bin/java - priority 180144
 slave ControlPanel: /usr/java/jdk1.8.0_144/jre/bin/ControlPanel
 slave javaws: /usr/java/jdk1.8.0_144/jre/bin/javaws
 slave jcontrol: /usr/java/jdk1.8.0_144/jre/bin/jcontrol
 slave jjs: /usr/java/jdk1.8.0_144/jre/bin/jjs
Current `best' version is /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.141-1.b16.el7_3.x86_64/jre/bin/java.

输出的内容省略了一部分,可以看到,系统中存在OpenJDK 和 Oracle的JDK,下面选择Oracle JDK为默认

[root@localhost cloud]# update-alternatives --config java

There are 3 programs which provide 'java'.

  Selection    Command
-----------------------------------------------
   1           /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.51-2.4.5.5.el7.x86_64/jre/bin/java
*+ 2           java-1.8.0-openjdk.x86_64 (/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.141-1.b16.el7_3.x86_64/jre/bin/java)
   3           /usr/java/jdk1.8.0_144/jre/bin/java

Enter to keep the current selection[+], or type selection number: 3
[root@localhost cloud]# java -version
java version "1.8.0_144"
Java(TM) SE Runtime Environment (build 1.8.0_144-b01)
Java HotSpot(TM) 64-Bit Server VM (build 25.144-b01, mixed mode)

update-alternatives 提供了交互界面,我们选择3之后会车,配置就会生效,可以看到已经改过来了。

update-alternatives 介绍

如果我们用ls -l /usr/bin/java 查看,可以发现命令其实都是软链接,现在java会定期升级,版本也特别多,所以很多命令都是软链接,update-alternatives就是管理这些软链接,这样版本切换的时候,可以将所有的链接同时进行更新。

本文操作系统为 CentOS release 6.5(final),本文是用 rpm 方式安装的jdk,如果下载的源码,可能需要配置 profile 并用 update-alternative —install 命令安装,本文没有尝试。

参考资料: 1、linux下如何使用自己安装的SunJDK替换默认的OpenJDK 2、如何更改Linux中默认的openjdk为自己安装的JDK 3、Linux安装Oracle JDK替换OpenJDK详解

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Mac下快捷键的收集整理

    最近刚换用了Mac的笔记本,因为之前是Linux用户,感觉切换的过程非常平滑,但是难免有些小不适应,在使用过程中,遇到一些快捷键,收集了下来,与大家分享。

    大江小浪
  • 让Mac风扇面对PD不再疯狂

    对于所有喜欢Mac操作系统的用户来说,如果办公环境必须使用Windows及Windows程序,那一定会非常崩溃,因为你很可能使用了Parallels Deskt...

    大江小浪
  • 离线环境下使用二进制方式安装配置Kubernetes集群

    我们可以下载编译好的二进制文件,也可以下载源码自己编译,源码编译可以参考这里本文只讨论二进制的安装方式。在Kubernetes的Github Latest 页面...

    大江小浪
  • 为什么要学习java?

    大家好!这个网站的目标是为了方便大家更好的学习java&android编程。不管你是初学者还是一个经验丰富的程序员,相信这个网站对你都会有很大的帮助。只要大家每...

    Java学习
  • 「大学生学编程系列」如何学习java?

    java目前在编程语言排行中还是稳稳的第一名,生态链系统越来越稳健,java语言已经慢慢步入成熟期,随之带来的是就业门槛的提升,这也是编程发展的一个趋势,未来编...

    程序员互动联盟
  • java入门

    一、java的运行机制 高级语言的运行机制主要有编译型和解释型两种。 C/C++属于编译型语言,由专门的编译器针对特定的操作系统平台进行翻译,生成可执行代码,特...

    用户1215536
  • 为什么java越来越强势

    ? 目前很多的从业都有这种感觉,突然觉得c/c++就业机会以及升职的空间比java的差距越来越大了,有人就宣称java是目前国内就业最好的语言,说的有点夸张但...

    奋斗蒙
  • SpringBoot开发案例从0到1构建分布式秒杀系统

    最近,被推送了不少秒杀架构的文章,忙里偷闲自己也总结了一下互联网平台秒杀架构设计,当然也借鉴了不少同学的思路。俗话说,脱离案例讲架构都是耍流氓,最终使用Spri...

    小柒2012
  • 线上服务 CPU 又 100% 啦?一键定位 so easy!

    来源:my.oschina.net/leejun2005/blog/1524687

    芋道源码
  • java9导出运行springboot的精简版jre

    为了分发一个springboot项目,在不考虑目标机器是否有jre的情况下,携带一个jre环境是一个选择。本文就尝试从原生的jdk 9.0.1 精简一个jre供...

    pollyduan

扫码关注云+社区

领取腾讯云代金券