在 CentOS/Fedora 下安装 JAVA 环境

634103-20190405000319046-1615757202.png

介绍

本文介绍如何在 CentOS 7(6/6.5)、 Fedora、RHEL 上安装 Java。Java是一个流行的软件平台,允许您运行Java应用程序。

本文涵盖了以下Java版本的安装:

  • OpenJDK 8
  • Oracle Java 8

先决条件

在开始之前,您应该有一个能够执行 root 权限命令的用户账户。

Java的变化

Java平台有三个不同版本:标准版(SE)、企业版(EE)和微型版(ME)。本文主要关注Java SE。

可以安装两个不同的Java SE包:Java运行时环境(JRE)和Java Development Kit(JDK)。JRE是Java虚拟机(JVM)的一种实现,它允许您运行已编译的Java应用程序和applet。JDK包括JRE及开发和编译Java应用所需的其他软件。

还有两种不同的Java实现:OpenJDK 和 Oracle Java。这两种实现都基于相同的代码,但 OpenJDK(Java的参考实现)是完全开源的,而Oracle Java包含一些专有代码。

您可以在单个系统上安装各种版本的Java,但大多数人只需要安装一个版本。考虑到这一点,请尝试仅安装运行或开发应用程序所需的Java版本。

安装OpenJDK 8

本节介绍如何使用 dnf 包管理器安装预构建的OpenJDK 8 JRE和JDK包,这类似于Ubuntu / Debian的apt-get。

安装OpenJDK 8 JRE

要使用 dnf 安装OpenJDK 8 JRE,请运行以下命令:

$ sudo dnf install java-1.8.0-openjdk

在确认提示下,输入 y 然后 RETURN 继续安装。

安装OpenJDK 8 JDK

要使用 dnf 安装OpenJDK 8 JDK,请运行以下命令:

$ sudo dnf install java-1.8.0-openjdk-devel

在确认提示下,输入 y 然后 RETURN 继续安装。

安装Oracle Java 8

这一部介绍如何安装 Oracle Java 8 JRE 和 JDK(64位)。注意:在安装Oracle Java之前,您必须接受 Java SE 的 Oracle 二进制代码许可协议,这是包含的步骤之一。

安装Oracle Java 8 JRE

注意:要安装Oracle Java 8 JRE,您需要转到 Oracle Java 8 JRE 下载页面,接受许可协议,并复制相应 .rpm 软件包的下载链接。

切换到您的主目录并使用以下命令下载 Oracle Java 8 JRE RPM:

$ cd ~
$ wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://link_copied_from_site"

然后使用此yum命令安装RPM(如果您下载了其他版本,请在此处替换文件名):

$ sudo yum localinstall jre-8u161-linux-x64.rpm

在确认提示下,输入y然后RETURN继续安装。

现在 Java 应该安装在/usr/java/jre1.8.0_161/bin/java,并从/usr/java/jre1.8.0_161/bin/java链接。

您可以删除先前下载的存档文件:

$ rm ~/jre-8u161-linux-x64.rpm

安装 Oracle Java 8 JDK

注意:要安装Oracle Java 8 JDK,您需要转到Oracle Java 8 JDK下载页面,接受许可协议,并复制相应Linux .rpm软件包的下载链接。
切换到您的主目录并使用以下命令下载Oracle Java 8 JDK RPM:

$ cd ~
$ wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://link_copied_from_site"

然后使用此yum命令安装RPM(如果您下载了其他版本,请在此处替换文件名):

$ sudo yum localinstall jdk-8u161-linux-x64.rpm

在确认提示下,输入y然后RETURN继续安装。

现在Java应该安装在/usr/java/jdk1.8.0_161/jre/bin/java,并从/usr/java/jdk1.8.0_161/jre/bin/java链接。

您可以删除先前下载的存档文件:

$ rm ~/jdk-8u161-linux-x64.rpm

设置默认Java

如果您安装了多个版本的Java,则需要将其中的某一个设置为默认值(即用户运行java命令时将运行的版本)。此外,某些应用程序需要设置某些环境变量来定位要使用的Java安装。本节将向您展示如何执行此操作。

顺便说一句,要检查默认Java的版本,请运行以下命令:

$ java -version

使用 Alternatives

alternatives 命令通过符号链接管理默认命令,可用于选择默认Java命令。

要打印提供java由其管理的命令的程序alternatives,请使用以下命令:

$ sudo alternatives --config java

输出应该类似以下结果:

output
There are 5 programs which provide 'java'.Selection    Command
-----------------------------------------------1           java-1.7.0-openjdk.x86_64 (/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.161-2.6.12.0.el7_4.x86_64/jre/bin/java)2           java-1.8.0-openjdk.x86_64 (/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.151-5.b12.el7_4.x86_64/jre/bin/java)3           /usr/lib/jvm/jre-1.6.0-openjdk.x86_64/bin/java
*+ 4           /usr/java/jre-9.0.4/bin/java5           /usr/java/jdk-9.0.4/bin/javaEnter to keep the current selection[+], or type selection number: 

只需输入选择号即可选择java默认情况下应使用的可执行文件。

使用环境变量

许多Java应用程序使用JAVA_HOME或JRE_HOME环境变量来确定java要使用的可执行文件。

例如,如果您安装Java在 /usr/java/jdk1.8.0_161/jre/bin(即可java执行文件位于/usr/java/jdk1.8.0_161/jre/bin/java),您可以设置环境变量 JAVA_HOME 在bash shell或脚本中,如下所示:

$ export JAVA_HOME=/usr/java/jdk1.8.0_161/jre

如果要将环境变量 JAVA_HOME 在系统上为每个用户可用,请运行以下命令:

$ sudo sh -c "echo export JAVA_HOME=/usr/java/jdk1.8.0_161/jre >> /etc/environment"

结论

恭喜,您现在可以运行和/或开发Java应用程序了!

转载于:https://www.cnblogs.com/kelsen/p/10657596.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/363220.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ActiveMQ –经纪人网络解释–第5部分

在前面的第4部分中,我们已经看到了如何使用网络连接器在队列中平衡远程使用者的负载。 在第5部分中,我们将看到如果在某个主题上有并发远程持久订阅者,则相同的配置将如何工作。 考虑以下配置…。 图1:经纪人网络–主题上的负载…

小程序: 域名配置

1. 问题 在小程序中,如果我们没有在微信公众平台: 配置 https开头的、备案过的域名话,调用该域名下的接口,就会报错 当然: 如果只是简单的学习下小程序使用的话,可以不校验域名 — 微信开发者工具中: 详情 …

C++迭代器简介

迭代器是一种检查容器内元素并遍历元素的数据类型。 标准库为每一种标准容器(包括 vector)定义了一种迭代器类型。迭代器类型提供了比下标操作更通用化的方法:所有的标准库容器都定义了相应的迭代器类型,而只有少数的容器支持下标…

硅谷企業面臨新的反壟斷枷鎖

硅谷的公司正面臨著加強反壟斷審查的新階段﹐這是對奧巴馬政府加強執法和持續不斷的海外壓力所做出的反應。 對在其行業中佔據主導地位的企業採取更嚴格的立場可能會考驗這些科技業巨頭在布什政府時期採取的政府關係策略。Associated Press奧巴馬政府任命的司法部負責反壟斷執法…

Spring Java配置:会话超时

当您可以使用基于Java的配置开发Spring应用程序时,我们生活在一个美好的时光。 不再有多余的XML代码,只有纯Java代码。 在本文中,我想讨论一个关于Spring应用程序中会话管理的热门话题。 更确切地说,我将以Java配置样式讨论会话超…

分而治之思想

当一个问题的规模很大时,直接求解往往比较困难。对于这类问题,很大一部分是可以采取分而治之的思想来处理的。 分治法是把问题划分成多个子问题来进行处理。这些子问题,在结构上跟原来的问题一样,但是规模比原来的问题要小。如果得…

诡异的DateTime.TryParseExact方法

老赵在介绍Routing扩展的WebCast中出了点“小状况”,即将DateTime.ToString(“yyyy-MM-dd”)修改为DateTime.ToString(“yyyy/MM/dd”)后,页面中仍然显示为yyyy-MM-dd样式的日期格式。相信看过WebCast的同学都还记得吧。我不解,将老赵代码中D…

iSlide——图标库、图示库的用法

iSlide中,有一个“图示库”功能,主要功能是同时排列多块文字或多张图片。单击插图库,会弹出一个新的对话框。从中,可以选择权限、分类、数量数据和样式,也可以直接搜索。 下面就举一个例子:我要开一个班队会…

查看系统剩余空间

1.剩余空间:df -h 2.追踪最耗费硬盘的文件位置 cd /du -h --max-depth1 | sort -rn 转载于:https://www.cnblogs.com/xiaobiaomei/p/10669159.html

『ExtJS』01 001. ExtJS 4 类的定义

ExtJS 4 类的定义类的定义与类方法的调用 样例代码// Define new class Vehicle under the Cookbook namespaceExt.define(Cookbook.Vehicle, {// class configuration goes hereManufacturer : Aston Martin,Model : Vanquish,getDetails : function() {alert(I am an this…

使用C#調用外部程式或是執行DOS命令

在.NET裡要如何調用外部程式呢?? 在.net裡,提供了Process類,提供我們強大的調用外部工具功能,並透過重新導向輸入與輸出,可以取得執行結果,下面就用一個例子來示範在一個WinForm裡輸入一個Dos命令,然後呼…

SQLiteOpenHelper+ContentProvider的使用

效果图: PetDbHelper package com.example.admin.pets;import android.content.Context;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteOpenHelper;import com.example.admin.pets.PetContract.PetEntry;public class PetDb…

[Mac入门] 如果更快的打开程序或文件

今天有位网友问我在Windows下可以用CtrlR快速打开程序/文件夹等,在Mac下有没有相类似的功能?本文将介绍一些我的一般做法。 1.Windows下的CtrlR是什么? 我打算从解释CtrlR开始说起,希望朋友们别嫌烦~。Windows下系统全…

ActiveMQ –经纪人网络解释–第4部分

在前面的第3部分中 ,我们已经看到ActiveMQ如何帮助将远程使用者与本地使用者区分开来,这有助于确定从消息生产者到使用者的较短路径。 在第4部分中,我们将研究如何在远程代理上负载均衡并发使用者。 让我们考虑一些高级配置,以平…

总结CSS3新特性(选择器篇)

CSS3新增了嗯- -21个选择器,脚本通过控制台在这里运行; ~: p ~ p {color : red;/*此条规则将用于p后边所有的p...就是除了第一个p的所有p,规则同p:not(:nth-of-type(1)),但是权重要低于后者*/} [attribute^value]: 选择该属性以特定值开头的元素 [attribute$value]: 选择该属…

工作流的设计,业务流程图的绘制与编辑,工作流软件,工作流源代码组件库,开发平台,开发引擎...

基于业务流程的工作流系统在当前的软件工业中占据着非常重要的部分,开发此类系统, 最困难的部分就是业务流程建模和电子表单的可视化界面部分,这部分界面要求有快速的响应时间, 完善的逻辑关系,以及根据需求不断变化而必须具备的灵活编辑功能. E-Form可视化图形源码…

Ajax全接触(1)

Ajax全称:Asynchronous JavaScript and XML(异步的JavaScript和XML) .Ajax不是某种编程语言 是一种在无需重新加载整个网页的情况之下能够更新部分网页的技术。 后面引入XMLHttpRequest对象用于后台和服务器交换数据,可以在不重新加载整个页面的前提下…

关于hibernate字段映射@colunm出现的问题以及jpa驼峰大写转_小写的问题探究

关于hibernate字段映射colunm出现的问题以及jpa驼峰大写转_小写的问题探究2018年04月24日 15:47:26 守望dfdfdf 阅读数:735 标签: colunmhibernate表映射实体类 更多个人分类: 工作 问题编辑版权声明:本文为博主原创文章&#xff…

LeetCode 上最难的链表算法题,没有之一!

题目来源于 LeetCode 第 23 号问题:合并 K 个排序链表。 该题在 LeetCode 官网上有关于链表的问题中标注为最难的一道题目:难度为 Hard ,通过率在链表 Hard 级别目前最低。 题目描述 合并 k 个排序链表,返回合并后的排序链表。请分…

处理Akka应用程序中的每个事件

这里的事件,那里的事件,到处都是事件。 发布有关检查每一项Akka事件最终都能找到归宿的信息。 Akka和基于事件的反应式应用程序是创建软件的新方法。 在当前基于Scala的项目中,我们非常密集地使用Akka。 事件非常适合我们的用例,…