博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
将Linux默认的OpenJDK替换为Oracle JDK
阅读量:5758 次
发布时间:2019-06-18

本文共 3010 字,大约阅读时间需要 10 分钟。

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

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

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

[cloud@localhost ~]$ java -versionopenjdk 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

首先从 下载所需的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 javajava - 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/jjsCurrent `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 javaThere 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/javaEnter to keep the current selection[+], or type selection number: 3[root@localhost cloud]# java -versionjava 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、
2、
3、

转载地址:http://vsvkx.baihongyu.com/

你可能感兴趣的文章
MySQL 8.0 压缩包版安装方法
查看>>
TensorFlow系列专题(六):实战项目Mnist手写数据集识别
查看>>
JS中this的4种绑定规则
查看>>
Netty Pipeline源码分析(2)
查看>>
@Transient注解输出空间位置属性
查看>>
Ansible-playbook 条件判断when、pause(学习笔记二十三)
查看>>
开发者报 | Github造假产业链曝光,花钱就能买Star;黑客又多一个可以偷你密码的方法了...
查看>>
git 相关开发常用
查看>>
编码服务正在步入云端
查看>>
javascript对象数组的二维比较和插入
查看>>
【CodeForces】585 E. Present for Vitalik the Philatelist
查看>>
阿里数据库内核月报:2017年02月
查看>>
细节之处 这么长时间才知道 哎 不应该
查看>>
Codeforces Round #288 (Div. 2) E. Arthur and Brackets [dp 贪心]
查看>>
转 C++中不能声明为虚函数的有哪些函数
查看>>
[开源]KJFramework.Message 高性能二进制消息框架 - 多元素数组的高性能优化
查看>>
补全Java基础(二)JavaSE基础
查看>>
Codelabs & 研讨会, 小小一隅,大大收获!
查看>>
《必备干货!程序员的自我修养&高效学习方法》观后笔记
查看>>
Sonar 应用
查看>>