- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章麒麟V10更换OpenJDK为Oracle JDK的方法由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
1 简介 。
jdk(java development kit)是 java 平台编程中使用的软件开发环境。它包含一个完整的 java 运行时环境,即所谓的私有运行时。该名称来自于它包含的工具多于独立的 jre 以及开发 java 应用程序所需的其他组件。常见的有 openjdk 和 oracle jdk 。
oraclejdk 根据 oracle 二进制代码许可协议获得许可,而 openjdk 具有 gnu 通用公共许可证(gnu gpl)版本2.
使用 oracle 平台时会产生一些许可影响。如 oracle 宣布的那样,在没有商业许可的情况下,在2019年1月之后发布的 oracle java se 8 的公开更新将无法用于商业,商业或生产用途。但是,openjdk 是完全开源的,可以自由使用.
因此,大多数 linux 发行版软件源中采用 openjdk,而国内开发者在开发 java 项目时,多数采用了oraclejdk,通常情况下两者并没有太大差异,但在少数时候程序运行时可能遇到异常.
麒麟v10 操作系统默认安装了 openjdk 1.8 版本,本文主要介绍在oraclejdk 环境下开发的程序在麒麟v10上运行遇到错误时,可以尝试更换openjdk 为 oracle jdk(已遇到一个实例:通过东方通中间件部署的某个 java 应用在 openjdk 环境下运行异常,更换为 oracle jdk 后能够正常运行。) 。
当然,因为商业许可等原因,这种临时替换不建议用于生产环境,而是通过比较应用在两者上的运行异同,最终适配到默认的 openjdk 上来.
2 准备工作 。
下载 oraclejdk 1.8 。
官方下载页面:
https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html 。
选择 aarch64 版本的 rpm 包下载(也可以选择压缩包格式,但需要自己配置环境变量等) 。
jdk-8u281-linux-aarch64.rpm 。
验证环境:
使用cat /etc/kylin-release和uname -a查看操作系统信息 。
。
注意,麒麟v10 操作系统默认同时安装了 openjdk 和 openjdk 11 两个版本,均进行卸载 。
3.2 查看默认安装版本 。
1
2
3
|
yum list installed |grep jdk
java -version
|
3.3 卸载默认安装版本 。
1
2
3
4
5
6
7
|
yum remove java-1.8.0-openjdk.aarch64
yum remove java-1.8.0-openjdk-headless.aarch64
yum remove java-11-openjdk-1:11.0.6.10-4.ky10.ky10.aarch64
yum remove java-11-openjdk-headless-1:11.0.6.10-4.ky10.ky10.aarch64
|
。
1
|
rpm -i jdk-8u281-linux-aarch64.rpm
|
。
1
|
java -version
|
可以看到,oraclejdk 已经安装成功(原有的 openjdk 标识消失) 。
到此这篇关于麒麟v10更换openjdk为oracle jdk的方法的文章就介绍到这了,更多相关更换openjdk为oracle jdk内容请搜索我以前的文章或继续浏览下面的相关文章希望大家以后多多支持我! 。
原文链接:https://blog.csdn.net/m0_46573967/article/details/114276090 。
最后此篇关于麒麟V10更换OpenJDK为Oracle JDK的方法的文章就讲到这里了,如果你想了解更多关于麒麟V10更换OpenJDK为Oracle JDK的方法的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我需要能够用从 ajax 请求获得的响应替换整个文档内容。 我尝试分配给 document.body.innerHTML 并尝试使用 document.write()。虽然这两个功能都可以在桌面 Sa
我有一篇 jQuery 文章,用更新的产品替换了 div。网格是用同位素格式化的,但我不知道如何使其在更新后重新格式化网格。 $.post(url, function(data) { $('#
我正在使用gradle过滤使用以下代码替换一个log4j.xml中的 token 。 import org.apache.tools.ant.filters.ReplaceTokens task co
我正在尝试改变在 MacVim 中,减少腕管诱导。我添加了这一行 let mapleader="," 到我的 .gvimrc,但“\”仍然是唯一有效的键。我错过了什么吗? 最佳答案 该行需要进入正常的
我正在尝试: 将双空格替换为单空格。 干净 修剪 与我使用相同的字符串: AmountI = Replace(Application.WorksheetFunction.Clean(Trim(.Cel
在我的 NEO-MAIL.xml文件,我看到条目为: {neo.rootdir}/Mail/Spool 我的 ColdFusion 安装在 C:\ ,空间不足,所以我想将线轴移动到不同的目
将 Xstream 升级到 1.4.8 后,我注意到 XstreamConverter 和 XstreamRepresentation 已被弃用。 两个问题: 我应该替换我的 xstream 注释吗?
我有一个名为 fulldata 的数据对象,它是一个对象数组。 fulldata = [ {'key': 'abc', values: {.....},....}
我有一个网络应用程序正在运行从 csv 文件生成的数据库表。 此表需要经常从 csv 更新。该表需要与 csv 完全匹配,即如果 csv 中不再存在记录,则该记录不应再存在于表中或应被软删除。 执行此
我有一个 MySQL 数据库 mydb 和一个测试环境中的数据库 mytestdb,它镜像 mydb。我需要一种将更改从测试数据库“推送到实时数据库”的方法。所以伪代码的过程就像 for each t
因此,我制作了一个单独的迁移文件来更改数据库表中的列名称。问题是,当我尝试进入包含表的页面时,我在尝试更改的列名称上收到未定义的方法错误。 我的教授告诉我,我必须先更改 View / Controll
我正在尝试通过调用 -replacePassWithPass: 并传递与 PKPassLibrary 中已存在的完全相同的通行证来更新 Passbook 中的通行证。方法返回 NO(替换失败) - 为
我在替换 || 时遇到问题字符。 str="Example || sentence"; document.write(str.replace(/||/g, "+")); // it g
因此,我们有一项繁忙的旧 Web 服务需要被新服务取代。旧版 Web 服务是使用 WAR 文件部署在 apache tomcat 服务器上的。也就是说,它被复制到 tomcat 下的 web apps
对于我目前正在开发的应用程序,我们希望从用户的 SIM 卡中读取数据,这工作正常。我们想让用户可以在应用程序运行时切换 SIM 卡。执行此操作时,操作系统请求设备重启,我们似乎无法抑制此消息。 有没有
手机换卡时如何访问事件? 最佳答案 基本上,这个问题“How to monitor SIM state change”的答案也是您问题的正确答案。 所以你创建了一个新类 package a.b.c;
我的代码中包含以下两行:- instanceMethod = new.instancemethod(testFunc, None, TestCase) setattr(TestCase, testNa
这个问题在这里已经有了答案: Explain example pipeline from Python subprocess module (1 个回答) 关闭去年。 在 subprocess 模块
如 Controller已弃用,有没有好的替代品? 我明白为什么它被弃用了,但现在需要找到它的替代品。 假设我需要将一些函数发布到HTML(因此无法使用Decorators),但没有任何模板HTML(
我有一个小代码可以在一列中格式化电话号码,从某种意义上说: -如果中间有空格,则将其删除 - 之后,从右边开始取 9 个数字,并检查它是否为整数,如果是,则将其放入单元格中。 问题是完成所有替换需要将
我是一名优秀的程序员,十分优秀!