Ubuntu18 中JDK的安装

文章目录

    • 一、背景说明
    • 二、获取安装包
    • 三、安装JDK
      • 3.1 上传安装包
      • 3.2 复制和解压
      • 3.3 环境变量的设置
      • 3.4 验证安装
    • 四、问题列表
      • 4.1 .bashrc文件在哪里?.bashrc是什么?
      • 4.2 为什么使用rz上传安装包时会报: 传输失败?
    • 五、总结

一、背景说明

开发好的java应用一般需要部署到服务器。出于稳定性、安全性和部署成本的考虑,一般会倾向于将应用部署到Linux系统。而我们今天讨论的是如何在 Ubuntu 系统中部署 java 应用,而 JDK 的安装是应用部署的基础。

环境说明:
操作系统:Ubuntu 18.04.4 LTS
JDK版本:jdk-8u291-linux-x64.tar.gz

二、获取安装包

jdk8 最新版本的下载地址:

http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

jdk8u211及以上版本的下载地址:
https://www.oracle.com/java/technologies/javase/javase8u211-later-archive-downloads.html

jdk所有版本的下载地址:
https://www.oracle.com/java/technologies/downloads/archive/

从oracle下载安装包,需要注册oracle账号。

三、安装JDK

3.1 上传安装包

我是在windows系统下载的安装包,然后通过XShell的 rz命令进行安装包上传的
具体命令如下:

# 转到~/software目录(如果没有请创建)
cd ~/software# 执行文件上传
# -b参数:以二进制文件进行上传
sudo rz -b

3.2 复制和解压

上传过程完成后,需要进行文件的复制

#创建/usr/java目录
sudo mkdir /usr/java#复制文件(注意:cp的第二个参数是一个目录。如果写成/usr/java,并且java目录不存在,就会将第一个参数的文件复制为名称为java的文件)
sudo cp ~/software/jdk-8u291-linux-x64.tar.gz /usr/java/

解压安装包:

# 转到/usr/java目录
cd /usr/java# 解压文件到指定目录
sudo tar -zvxf jdk-8u291-linux-x64.tar.gz jdk1.8.0_291# 删除安装包
sudo rm jdk-8u291-linux-x64.tar.gz

3.3 环境变量的设置

环境变量的设置需要使用到 .bashrc文件
相关操作如下:

# 打开.bashrc文件
sudo vim ~/.bashrc

在文件末尾追加如下内容:

##JAVA_CONFIG
JAVA_HOME=/usr/java/jdk1.8.0_291
JRE_HOME=$JAVA_HOME/jre
JAVA_BIN=$JAVA_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME JRE_HOME PATH CLASSPATH

这里内容的添加,等价于 windows系统中环境变量的设置
这里有几点内容需要交代一下:

  1. 所有的环境变量都是大写的,而Linux是区分大小写的
  2. 形如$JAVA_HOME 这种 $+环境变量 的写法,都代表对环境变量的引用
  3. $PATH:路径 代表在原路径后面添加新的路径
  4. Unix类系统的环境变量的路径用冒号(:)分割,而不是分号(;)。这一点需要和windows系统进行区分
  5. 为了避免混乱,建议将所有的环境变量都添加在文件末尾,并添加注释。

最后一步千万不要忘记,需要 使配置生效

source ~/.bashrc

3.4 验证安装

验证 JDK 是否安装成功,最简单的方式是在终端执行下面的命令:

java -version

我的服务器上的执行结果如下:
java -version
如果也和我上面一样,提示JDK的具体版本,则表示JDK安装成功!!!

 

四、问题列表

4.1 .bashrc文件在哪里?.bashrc是什么?

答:.bashrc是 home目录下 的一个shell文件。
用途:用于存储用户的个性化设置。.bashrc 中的内容在每次打开终端时都会读取

 
.bashrc 具体用途:
1. 个性化指令
下图是.bashrc的部分内容:
ll
其作用就是定义命令别名ll,其等价于命令:ls -alF

2. 设置环境路径
set
上图展示了环境路径的设置。

3. 提示符设置
相关命令如下:

PS1=[\u: \w]$”

 

4.2 为什么使用rz上传安装包时会报: 传输失败?

在上传jdk安装包的过程中,发生了传输失败的情况,相关截图如下:
error
报错原因:

使用的上传命令如下:

rz -b

因为上传文件到服务器是一个有可能造成安全问题的操作,所以普通用户权限是不够的。因此,上述报错的原因:

当前用户没有权限

解决方法:

既然是因为权限不足导致的失败,所以需要提升权限,可替换为如下命令:

sudo rz -b

 

五、总结

本文讲述了如何在 Ubuntu 系统中安装JDK的一般思路。首先,告诉读者从哪里可以获取安全完整的安装包。然后又指导读者如何上传安装包到服务器,在此过程中使用到了XShell,并用到了rz命令进行文件的传输。

后续又讲解了如何将jdk安装到合适的位置,并设置了相关的环境变量,同时也简单交代了什么是 .bashrc 。最后对整个安装过程进行了验证。

 
 
 
 
 


参考:

  • 使用Xshell的rz命令上传文件失败的解决方法
  • 什么是.bashrc,有什么用?

相关链接:

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

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

相关文章

解决RuntimeError: Couldn‘t load custom C++ ops. This can happen if your PyTorch

问题描述 刚下好yolov8的代码,想测一下能否成果,果然没成功,报错如下 RuntimeError: Couldnt load custom C ops. This can happen if your PyTorch and torchvision versions are incompatible, or if you had errors while compiling tor…

kettle从入门到精通 第七五课 ETL之kettle血缘,数据血缘

在了解kettle血缘之前,咱们先来了解下什么是数据血缘? 1、数据血缘定义(来自gpt) 数据血缘(Data Lineage)是指在数据管理和数据分析中追踪数据的源头、流向和处理过程的能力。具体来说,数据血…

《昇思25天学习打卡营第21天|基于 MindSpore 实现 BERT 对话情绪识别》

#学习打卡第21天# 1. BERT 模型 BERT全称是来自变换器的双向编码器表征量(Bidirectional Encoder Representations from Transformers),它是Google于2018年末开发并发布的一种新型语言模型,是基于Transformer中的Encoder并加上双向…

org/openxmlformats/schemas/spreadsheetml/x2006/main/CTWorkbook$Factory

org/openxmlformats/schemas/spreadsheetml/x2006/main/CTWorkbook$Factory POI的问题 在操作Excel时,出现这个问题是因为缺少了poi-ooxml-schema jar包,并且与poi的jar包版本一致

昇思25天学习打卡营第21天 | 基于MindSpore的红酒分类实验

内容简介 本实验介绍了使用MindSpore框架实现K近邻算法(KNN)对红酒数据集进行分类的全过程。通过数据读取、预处理、模型构建与预测,展示了KNN算法在红酒数据集上的应用。实验中详细解释了KNN的原理、距离度量方式及其在分类问题中的应用&…

PyTorch张量创建和随机数生成器算法

文章目录 1、基本创建方式1.1、根据已有数据创建张量1.2、根据已有数据创建张量1.3、根据已有数据创建张量 2、创建线性和随机张量2.1、创建线性空间的张量2.2、创建随机张量2.3、什么是随机数种子2.4、initial_seed()和manual_seed() 3、创建01张量3.1、全0张量3.2、全1张量3.…

【Java18】初始化块

初始化块和构造器、成员变量、成员方法一起,是唯四能在类中出现的成员。 初始化块的作用和构造器类似,目的是对对象进行初始化操作;一个类中可以有多个初始化块;初始化块只有两种修饰方式:static和default。用static修…

nginx生成自签名SSL证书配置HTTPS

一、安装nginx nginx必须有"--with-http_ssl_module"模块 查看nginx安装的模块: rootecs-7398:/usr/local/nginx# cd /usr/local/nginx/ rootecs-7398:/usr/local/nginx# ./sbin/nginx -V nginx version: nginx/1.20.2 built by gcc 9.4.0 (Ubuntu 9.4.0…

Android Studio - adb.exe已停止运作的解决方案

adb.exe 是Android Debug Bridge 的缩写,它是Android SDK 中的一个调试工具,允许开发者通过命令行界面与设备进行交互,执行各种操作,如运行设备的shell、管理模拟器或设备的端口映射、在计算机和设备之间上传/下载文件、将本地APK…

我的GeneFace++部署与运行之旅

文章目录 引言项目背景概述重要性分析结论 环境准备1. 安装CUDA2. 安装Python依赖3. 准备3DMM模型(BFM2009)及其他数据 运行官方 Demo训练自己的视频数据准备训练推理测试 遇到的问题与解决方案问题一:cuda 安装完发现版本不对问题二&#xf…

C语言 底层逻辑详细阐述结构体 #结构体的声明 #结构体的初始化 #结构体成员访问 #结构体传参

文章目录 前言 一、结构体的基础知识 二、结构体的初始化 1、结构体类型声明: 2、结构体成员的类型 3、结构体变量的初始化: 三、结构体成员访问 四、结构体传参 总结 前言 基于自我理解的角度来讲结构体; 一、结构体的基础知识 结构是一些…

NSSCTF中24网安培训day2中web题目

[SWPUCTF 2021 新生赛]ez_unserialize 这道题目考察php反序列化的知识点 打开题目,发现没有提示,我们试着用御剑扫描目录文件,发现存在robots.txt的文件 接着访问这个文件,发现是一段php反序列化代码,我们需要进行序…

论文翻译:通过云计算对联网多智能体系统进行预测控制

通过云计算对联网多智能体系统进行预测控制 文章目录 通过云计算对联网多智能体系统进行预测控制摘要前言通过云计算实现联网的多智能体控制系统网络化多智能体系统的云预测控制器设计云预测控制系统的稳定性和一致性分析例子结论 摘要 本文研究了基于云计算的网络化多智能体预…

【常见开源库的二次开发】基于openssl的加密与解密——Base58比特币钱包地址——算法分析(三)

目录: 目录: 一、base58(58进制) 1.1 什么是base58? 1.2 辗转相除法 1.3 base58输出字节数: 二、源码分析: 2.1源代码: 2.2 算法思路介绍: 2.2.1 Base58编码过程: 2.1.2 Base58解码过…

Leetcode—146. LRU 缓存【中等】(shared_ptr、unordered_map、list)

2024每日刷题(143) Leetcode—146. LRU 缓存 先验知识 list & unordered_map 实现代码 struct Node{int key;int value;Node(int key, int value): key(key), value(value) {} };class LRUCache { public:LRUCache(int capacity): m_capacity(capa…

实战案例:用百度千帆大模型API开发智能五子棋

前随着人工智能技术的迅猛发展,各种智能应用层出不穷。五子棋作为一款经典的棋类游戏,拥有广泛的爱好者。将人工智能技术与五子棋结合,不仅能提升游戏的趣味性和挑战性,还能展现AI在复杂决策问题上的强大能力。在本篇文章中&#…

habase集群安装

解压到/opt/softs目录 tar -zxvf hbase-2.4.11-bin.tar.gz -C /opt/softs/ 改名 mv hbase-2.4.11/ hbase2.4.11 配置环境变量 修改/etc/profile vim /etc/profile 添加 #HBASE_HOME export HBASE_HOME/opt/softs/hbase2.4.11 export PATH$PATH:$HBASE_HOME/bin 修改其中的…

怎么把自己写的组件发布到npm官方仓库??

一.注册npm账号 npm官网 1.注册npm 账号 2.登陆 3.登陆成功 二.搭建一个vue 项目 具体步骤参考liu.z Z 博客 或者初始化一个vue项目 vue create XXX (工程名字)运行代码 npm run serve三.组件封装 1.在src文件下建一个package文件&#xff0…

借助 Aspose.Words,在 C# 中将 Word 转换为 JPG

有时我们需要将 Word 文档转换为图片,因为 DOC 或 DOCX 文件在不同设备上的显示可能会有所不同,但图像(例如 JPG 格式)在任何地方看起来都一样。 Aspose.Words 是一种高级Word文档处理API,用于执行各种文档管理和操作…

【OrangePi AIpro】: 探索AI加成的开源硬件魅力

🌈个人主页: 鑫宝Code 🔥热门专栏: 闲话杂谈| 炫酷HTML | JavaScript基础 ​💫个人格言: "如无必要,勿增实体" 文章目录 Orange Pi: 探索开源硬件的魅力引言Orange Pi概述OrangePi AIPro产品介绍试用体…