Linux版本JDK1.8下载与安装

下载:

网上有很多网盘版的,我为了便于以后看更新,这里上官网下。
地址:
https://www.oracle.com/java/technologies/javase-downloads.html
进入这个页面可以看见各个版本的,往下划找到我要的JDK1.8的
在这里插入图片描述
点击JDK Download,可以看到有很多版本,我是ubuntu系统,选择下载rpm或者tar.gz就好,我这里下rpm包
Java SE Development Kit 8u281
在这里插入图片描述
在这里插入图片描述
然后按官网的要求创建Oracle账户并验证邮箱即可。比以前麻烦了不少。
用户名是邮箱,密码分大小写字母加数字,而且必须有大写字母,登录之后就可以下载了,我这边显示正在登录的时候就在下载了。
在这里插入图片描述

上传到远程Linux服务器:

我这里是在windows下载,然后上传到我的另一台Linux主机上进行安装。
上传文件需要登录到root账户,否则会显示状态 “错误” ,所以首先要使用Xshell登录到root账户,但是 sshd 默认设置不允许 root 用户远程登录,所以需要手动开启一下。
参考文章:Xshell使用root用户连接Linux
连接到root用户:
在这里插入图片描述
上传成功:
在这里插入图片描述

安装:

先看一下我们放置安装包的文件目录:
在这里插入图片描述

1、rpm命令安装java环境

#检测当前系统是否存在java环境! 
java -version#如果有的话就需要卸载,检测JDK版本信息
rpm -qa|grep jdk#卸载,nodeps是强制卸载的意思
rpm -e --nodeps jdk对应的信息#卸载完毕后即可安装jdk
rpm -ivh rpm包

额额额,尴尬的是我的Ubuntu无法安装rpm包,显示ubuntu RPM should not be used directly install RPM packages, use Alien instead!
有办法解决,但我觉得太麻烦了,所以我准备再下载一个tar.gz版本的。
解决办法:ubuntu RPM should not be used directly install RPM packages, use Alien instead!
将我下载的tar.gz上传到Linux服务器
在这里插入图片描述

2、安装java环境,tar.gz版本的

2.1解压到当前环境:

sudo tar -zxvf jdk-8u281-linux-x64.tar.gz

解压之后就出现了蓝色的jdk1.8.0_281文件夹
在这里插入图片描述

2.2 在/usr创建environment/java文件夹,并将解压的jdk移动到/usr/environment/java

解释一下跟usr有关的目录:

/usr:这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录。
/usr/bin: 系统用户使用的应用程序。
/usr/sbin: 超级用户使用的比较高级的管理程序和系统守护程序。
/usr/src:内核源代码默认的放置目录。

在这里插入图片描述
可以像我图这样一级一级的建,也可以使用-p创建层级目录

mkdir -p test2/test3/test4 # 用-p递归创建层级目录

移动解压的jdk目录至我们创建的目录下

mv jdk1.8.0_281 /usr/environment/java
查看结构或,已成功移动过去
在这里插入图片描述

3、配置环境变量

所有关于环境变量的配置都在/etc/profile

打开/etc/profile,配置环境变量

root@pc-PowerEdge-T430:/# vim /etc/profile

在该文件最后面添加几行:

export JAVA_HOME=/usr/environment/java/jdk1.8.0_281 
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib  
export PATH=$PATH:${JAVA_HOME}/bin:$JRE_HOME/bin

也可以像下面这样:

JAVA_HOME=/usr/environment/java/jdk1.8.0_281 
JRE_HOME=$JAVA_HOME/jre
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
export JAVA_HOME JRE_HOME PATH CLASSPATH

i进入编辑模式,ESC推出编辑模式,英文:进入尾行,wq回车保存退出
特别注意在配置环境变量时不要添加了额外的空格!!!

5、初始化profile文件,使之立即生效

source /etc/profile
java -version //查看Java版本看是否安装成功

在这里插入图片描述
可以将 springboot 项目的 jar 包丢上服务器去测试。

参考文章:ubuntu安装jdk1.8并配置环境变量

参考文章:Linux系统rpm命令安装jdk并配置环境变量

如果出现切换用户后环境变量失效的问题,就按下面这篇文章进行配置:我已经按这篇文章进行过配置了
解决ubuntu在/etc/profile中配置环境变量后失效的问题

我也已经参考下面这篇文章对/etc/environment进行了编辑
linux安装jdk,设置环境变量遇到的一个奇葩问题

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

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

相关文章

关于多线程编程您不知道的 5 件事 有关高性能线程处理的微妙之处

虽然很少有 Java™ 开发人员能够忽视多线程编程和支持它的 Java 平台库,更少有人有时间深入研究线程。相反地,我们临时学习线程,在需要时向我们的工具箱添加新的技巧和技术。以这种方式构建和运行适当的应用程序是可行的,但是您可…

Ubuntu作为服务器其tomcat被远程访问问题

根据我的Linux版本tomcat下载及安装安装好tomcat之后,但是还不能直接访问我 ubuntu 服务器的公网 ip, 即http://xxx.xxx.xxx.xxx:8080访问不到 Apache tomcat主页,还需要进行配置。 一、在路由器管理页面配置转发规则 如果你和我一样&#…

c#界面鼠标拖动

之前做过拖动,找了两种方法: 1、 private Point myPoint; private void Form1_MouseMove(object sender, MouseEventArgs e) { if (e.Button MouseButtons.Left) { Point myPosition Co…

没有已启用的仓库。 执行 “yum repolist all“ 查看您拥有的仓库。

问题描述: yum是RPM的前端程序,对于多软件安装时非常好用,在虚拟机中想要安装什么软件都可以使用yum install 软件来快速调用仓库安装,但是我初次使用这个命令的时候一直报错,显示 没有已启用的仓库。 执行 “yum rep…

解决ubuntu上网慢

Ubuntu上网慢?没错!不要再怀疑,Ubuntu上网的确要比Windows下慢。慢在哪里呢?在Ubuntu 9.10下使用Firefox浏览网页的时候你会发现,左下角的状态栏里,长时间的显示:Looking up xxxx.com.... 或者 Connecting to xxxx.com 的信息。…

最老程序员创业札记:全文检索、数据挖掘、推荐引擎应用33

快刀斩乱麻第二天一大早,吴言就准备去找老乡打听梁秀娟的行踪,虽然他从心里觉得小A和梁秀娟最近的做法都不对,但是他说不清为什么,也不愿意他们这样闹下去,到头来两败俱伤。在老乡之中,吴言首先想到的是自己…

Linux下安装Redis

下载安装包 Linux版本下载地址: Redis中文官方网站:http://www.redis.cn/ 点击箭头处即可下载tar.gz文件。 安装 1、上传文件到linux服务器上 我是使用Xshell远程安装到linux服务器,所以先使用xftp把安装包上传到服务器指定目录下 2、…

windows安装双JDK并实现版本切换

我本来只有一个JDK11,后来因为要用到jdk8,但是我又不想卸载掉11,于是想到了jdk共存,根据百度经验操作作了如下一通操作: 1、删除java.exe,javac.exe,javaw.exe 首先,jdk11会自动在 C:\Program Files\Comm…

三大最被低估的安全技术 用户数量决定一切

以下就是今天安全业界普遍人们被低估的技术。由于有些安全专业人士认为很神奇的工具可能在别人看来是预算上的浪费,所以如果一种技术同时出现在被高估和低估的名单里也就不足为奇了。 白名单 应用安全是一些企业越来越担心的问题,因为企业和个人的应用越…

Jedis使用测试——连接本地及远程的Redis

我们要使用Java来操作Redis,就要学会使用Jedis 一、什么是jedis 是Redis官方推荐的java连接开发工具!使用Java操作Redis 中间件!如果你要使用java操作redis,那么一定要对Jedis十分的熟悉! 二、测试 新建一个空的工程,然后新建一…

NetBeans IDE 7.1 Window Layout Designer

http://blogs.oracle.com/geertjan/entry/netbeans_ide_7_1_window——————————————————————————————————————————————————————————————————In 7.1, youll see this in the New File dialog: I.e., as you ca…

org.springframework.data.redis.serializer.SerializationException: Cannot serialize;

错误: . ____ _ __ _ _/\\ / ____ __ _ _(_)_ __ __ _ \ \ \ \ ( ( )\___ | _ | _| | _ \/ _ | \ \ \ \\\/ ___)| |_)| | | | | || (_| | ) ) ) ) |____| .__|_| |_|_| |_\__, | / / / /|_||___//_/_/_/:: Spring Boot :: …

poj2008

题意&#xff1a;给定一些点的坐标(hi,wi)&#xff0c;要选出一个点集&#xff0c;使得集合所包含的点数最多&#xff0c;且符合A*(H-h) B*(W-w) < C&#xff0c;h为集合中最小h&#xff0c;w为点集中最小w。 分析&#xff1a;我们是要找到这样的点集&#xff0c;hi>h&a…

Git右键没有Git Bash Here的解决办法

好长一段时间没有使用Git了&#xff0c;今天想用git在码云上下载东西&#xff0c;但是突然发现右键没有Git Bash Here了&#xff0c;然后在网上搜索了一番&#xff0c;然后解决了。 解决方法&#xff1a; winR 打开运行小窗口&#xff0c;在 “ 运行 ” 中输入‘ regedit ’&…

随想系列_4_从电影《可可西里》说起

今天&#xff0c;国庆节的第一天&#xff0c;感觉不到放假的轻松&#xff0c;反而更加觉得心情沉闷。 无聊&#xff0c;生活的主旋律&#xff0c;一直如此&#xff1b;死气沉沉&#xff0c;感觉不到活力&#xff1b;每天做的事空泛而无趣&#xff1b;没有任何意义&#xff0c;没…

对可重入锁和不可重入锁的理解

可重入锁&#xff1a;ReentrantLock 在学JUC的时候&#xff0c;听到可重入锁这个词&#xff0c;不理解它的概念&#xff0c;网上搜索一番&#xff0c;还是有点迷糊&#xff0c;所以自己再来做一下笔记&#xff0c;理一理思路。 一、锁是什么&#xff1f; 我们这里提到的锁&am…

Windows Phone 7开发一月谈(3)

如何获知手机与PC相连Spb Shell 技术研究windows mobile 6.0 C# 如何获得 SIM卡 ICCID &#xff1f;mobile上如何掉用API来挂掉电话关于全屏程序下输入法的显示问个获取主机IP地址的问题&#xff1f;在设置-电话界面中铃声播放问题怎样获取TAPI的LINECALLSTATE_RINGBACK消息Dir…

Synchronized 和 Lock 区别

Synchronized 和 Lock 区别 Synchronized 是内置的Java关键字&#xff0c; Lock 是一个Java类Synchronized 无法判断获取锁的状态&#xff0c;Lock 可以判断是否获取到了锁Synchronized 会自动释放锁&#xff0c;lock 必须要手动释放锁&#xff01;如果不释放锁&#xff0c;会…

对HashMap数据结构的理解——加载因子和初始容量

先看源码&#xff1a; 解释一下位移运算&#xff1a; 1<<4 是位移运算的表示&#xff0c;为十进制16 1的二进制表示&#xff1a;1 左移4位之后的二进制表示为B&#xff08;10000&#xff09; D&#xff08;16&#xff09; 更简单的计算方法就是 1<< n 等效于 1 乘…

objective-c 使用NSNumber 将int float long等数据类型加入到数组或字典中

objective-c 使用NSNumber 将int float long等数据类型加入到数组或字典中设置值和取值如下代码&#xff1a;NSNumber *number[NSNumber numberWithInt:45]; NSLog("NSNumber %d",[number intValue]);