centos789手动无脑用sh脚本安装Java8

news/2024/9/19 19:40:56/文章来源:https://www.cnblogs.com/zhangzhang001/p/18421163

#老师给的文件是jdk1.8版本,所以我这边写的也是1.8的脚本

输入命令:mkdir –p /export/data

#放置相关的数据文件

输入命令mkdir –p /export/servers

#软件的安装目录

输入命令:mkdir –p /export/software

上传文件jdk-8u241-linux-x64.tar.gz到/export/software目录

然后写一个安装脚本,vim install_jdk.sh

#!/bin/bash# 确保以 root 用户运行
if [ "$(id -u)" -ne "0" ]; thenecho "请以 root 用户运行此脚本!"exit 1
fi# 定义目录和文件路径
SOFTWARE_DIR="/export/software"
SERVER_DIR="/export/servers"
JAVA_TAR="jdk-8u241-linux-x64.tar.gz"
JAVA_DIR="jdk1.8.0_241"
JAVA_SYMLINK="jdk"# 确保目标目录存在
if [ ! -d "$SOFTWARE_DIR" ]; thenecho "目录 $SOFTWARE_DIR 不存在,正在创建..."mkdir -p "$SOFTWARE_DIR"if [ $? -ne 0 ]; thenecho "创建目录 $SOFTWARE_DIR 失败。"exit 1fi
fiif [ ! -d "$SERVER_DIR" ]; thenecho "目录 $SERVER_DIR 不存在,正在创建..."mkdir -p "$SERVER_DIR"if [ $? -ne 0 ]; thenecho "创建目录 $SERVER_DIR 失败。"exit 1fi
fi# 切换到软件目录
cd "$SOFTWARE_DIR" || { echo "无法切换到目录 $SOFTWARE_DIR"; exit 1; }# 检查 JDK 压缩包是否存在
if [ ! -f "$JAVA_TAR" ]; thenecho "压缩包 $JAVA_TAR 不存在,请上传该文件后再运行脚本。"exit 1
fi# 解压 JDK 包
echo "正在解压 $JAVA_TAR 到 $SERVER_DIR..."
tar -zxvf "$JAVA_TAR" -C "$SERVER_DIR" || { echo "解压失败"; exit 1; }# 切换到解压后的目录
cd "$SERVER_DIR" || { echo "无法切换到目录 $SERVER_DIR"; exit 1; }# 重命名解压后的 JDK 目录
if [ -d "$JAVA_DIR" ]; thenecho "重命名 $JAVA_DIR 为 $JAVA_SYMLINK..."mv "$JAVA_DIR" "$JAVA_SYMLINK" || { echo "重命名失败"; exit 1; }
elseecho "目录 $JAVA_DIR 不存在,检查解压结果。"exit 1
fi# 配置 JDK 环境变量
PROFILE_FILE="/etc/profile"
echo "配置 JDK 环境变量..."
{echo "# JDK 环境变量配置"echo "export JAVA_HOME=$SERVER_DIR/$JAVA_SYMLINK"echo "export PATH=$PATH:$JAVA_HOME/bin"echo "export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar"
} >> "$PROFILE_FILE"# 重新加载环境变量配置
source "$PROFILE_FILE" || { echo "无法重新加载环境变量配置"; exit 1; }# 修正 Java 执行文件的权限
echo "修正 Java 执行文件的权限..."
chmod -R +x "$SERVER_DIR/$JAVA_SYMLINK/bin/java" || { echo "修正权限失败"; exit 1; }# 验证 Java 是否安装成功
echo "验证 Java 安装..."
java -version || { echo "Java 安装失败"; exit 1; }echo "Java 安装和配置完成!"root@iZbp194zd87uhtpqlqkf3gZ:~# 
cat /root/install_jdk.sh 
#!/bin/bash# 确保以 root 用户运行
if [ "$(id -u)" -ne "0" ]; thenecho "请以 root 用户运行此脚本!"exit 1
fi# 定义目录和文件路径
SOFTWARE_DIR="/export/software"
SERVER_DIR="/export/servers"
JAVA_TAR="jdk-8u241-linux-x64.tar.gz"
JAVA_DIR="jdk1.8.0_241"
JAVA_SYMLINK="jdk"# 确保目标目录存在
if [ ! -d "$SOFTWARE_DIR" ]; thenecho "目录 $SOFTWARE_DIR 不存在,正在创建..."mkdir -p "$SOFTWARE_DIR"if [ $? -ne 0 ]; thenecho "创建目录 $SOFTWARE_DIR 失败。"exit 1fi
fiif [ ! -d "$SERVER_DIR" ]; thenecho "目录 $SERVER_DIR 不存在,正在创建..."mkdir -p "$SERVER_DIR"if [ $? -ne 0 ]; thenecho "创建目录 $SERVER_DIR 失败。"exit 1fi
fi# 切换到软件目录
cd "$SOFTWARE_DIR" || { echo "无法切换到目录 $SOFTWARE_DIR"; exit 1; }# 检查 JDK 压缩包是否存在
if [ ! -f "$JAVA_TAR" ]; thenecho "压缩包 $JAVA_TAR 不存在,请上传该文件后再运行脚本。"exit 1
fi# 解压 JDK 包
echo "正在解压 $JAVA_TAR 到 $SERVER_DIR..."
tar -zxvf "$JAVA_TAR" -C "$SERVER_DIR" || { echo "解压失败"; exit 1; }# 切换到解压后的目录
cd "$SERVER_DIR" || { echo "无法切换到目录 $SERVER_DIR"; exit 1; }# 重命名解压后的 JDK 目录
if [ -d "$JAVA_DIR" ]; thenecho "重命名 $JAVA_DIR 为 $JAVA_SYMLINK..."mv "$JAVA_DIR" "$JAVA_SYMLINK" || { echo "重命名失败"; exit 1; }
elseecho "目录 $JAVA_DIR 不存在,检查解压结果。"exit 1
fi# 配置 JDK 环境变量
PROFILE_FILE="/etc/profile"
echo "配置 JDK 环境变量..."
{echo "# JDK 环境变量配置"echo "export JAVA_HOME=$SERVER_DIR/$JAVA_SYMLINK"echo "export PATH=$PATH:$JAVA_HOME/bin"echo "export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar"
} >> "$PROFILE_FILE"# 重新加载环境变量配置
source "$PROFILE_FILE" || { echo "无法重新加载环境变量配置"; exit 1; }# 修正 Java 执行文件的权限
echo "修正 Java 执行文件的权限..."
chmod -R +x "$SERVER_DIR/$JAVA_SYMLINK/bin/java" || { echo "修正权限失败"; exit 1; }# 验证 Java 是否安装成功
echo "验证 Java 安装..."
java -version || { echo "Java 安装失败"; exit 1; }echo "Java 安装和配置完成!"

执行这个脚本首先要保证 /export/servers和/export/software这两个文件以及建立且jdk软件包和我一样是jdk-8u241-linux-x64.tar.gz且解压出来的文件夹名为jdk1.8.0_241

如何自己运行Java -version 不成功检测一下 /etc/profile文件,是否和下面图片的文件一致。

vim /etc/profile

 

如果你要安装其他的Java版本,比如openjdk-8u44-linux-x64.tar.gz,那你可以将下面两个参数变一下。如图:

JAVA_TAR="openjdk-8u44-linux-x64.tar.gz"
JAVA_DIR="java-se-8u44-ri"

如何设置参数:在你自己的Windows电脑双击你下载好的jdk安装包,然后查看里面的文件夹名称

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

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

相关文章

C++ vector 的一些操作

▲ 《C++ Primer》 P87▲ 《C++ Primer》 P91

BoardLight

​​这是一个easy程度的靶机,所以博主写的也很简单,总共有2个flag。 信息收集端口扫描: ​​发现开放了22,80端口 Web渗透 ​​最底部发现域名 board.htb写进/etc/hosts​文件中 sudo echo "10.10.11.11 board.htb" | sudo tee -a /etc/hosts 对他进行子域名爆破…

LLM学习笔记-长度外推技术

长度外推为在不需要对模型进行额外训练的情况下,模型可以处理更长的序列。本篇文章主要介绍目前大模型用到的一些长度外推技术,包括以RoPE为基础进行位置插值、NTK-aware、动态NTK、NTK-by-parts 和YaRN。关于RoPE,可参见我的上一篇博客LLM学习笔记-位置编码篇 位置插值 回想…

裘立帆-第一次作业

在博客园建立个人技术博客,完善个人信息及博客设置,并发布一篇包含自我介绍、技能树与技术偏好、课程期望的随笔,以此作为课程参与的开始。这个作业属于哪个课程 https://edu.cnblogs.com/campus/zjlg/rjjc/这个作业的目标 熟悉博客的写作和使用,将自己介绍给老师和助教姓名…

章14——集合——集合体系

目录两个难点 底层机制,和不同应用场景下的选择集合体系图,需要背诵!总结: 1、集合主要是两组(单列集合、双列集合) 2、Collection 接口有两个重要的子接口 List Set, 他们的实现子列都是单列集合 3、Map 接口实现的子类是双列集合,存放的是key,value 4、上述两张图要记…

使用 VSCode 调试 Zig

首要条件是你本地需要安装MinGW-w64. 可以参考MinGW-w64安装教程——著名C/C++编译器GCC的Windows版本 - jack_Meng - 博客园 (cnblogs.com) 这里有几点需要注意,在2024年9月时,我没有找exe的安装,你需要在github下载 Releases niXman/mingw-builds-binaries (github.com) …

Go 入门指南:8.5. map 的排序

原创 吃个大西瓜 Coding Big Tree2024年09月19日 08:00 云南map 默认是无序的,不管是按照 key 还是按照 value 默认都不排序(详见第 8.3 节)。 如果你想为 map 排序,需要将 key(或者 value)拷贝到一个切片,再对切片排序(使用 sort 包,详见第 7.6.6 节),然后可以使用…

频率响应9

频率响应 公式推导 正弦输入的一般形式 \[u(t)=Asin(\omega_i)+bcos(\omega_i) \]整理 \[u(t)=M_i sin(\omega_i t + \phi_i) \\其中 \phi_i=arctan \frac{B}{A} \qquad ,M_i=\sqrt{A^2+B^2} \]输入到系统 G(s) \[\begin{aligned} U(s)& =\mathcal{L}[u\left(t\right)]=\…

vscode 搜索框3个按钮分别代表什么

https://blog.csdn.net/u012292754/article/details/108307288相信坚持的力量,日复一日的习惯.

数据库系统 1 关系数据库

数据库系统 1 关系数据库 三层体系结构外部层:数据库的用户视图 概念层:数据库的整体视图,提供内、外部层的映射和必要的独立性所有实体,实体的属性和实体间的联系 数据的约束 数据的语义信息 安全性和完整性信息内部层:数据库在计算机上的物理表示数据独立性 三层体系的主…

记录一次首页优化的经历

公司最近要进行多品牌合一,原来五个品牌的app要合并为一个。品牌立项、审批、方案确定,历史数据迁移、前期的基础工程搭建,兼容以及涉及三方的交互以及改造,需求梳理等也都基本完成,原来计划9月中旬进行上线,但是上线后服务端的压测一直通不过-首页抗不过太高的并发。app…

软工作业3:结对项目——实现一个自动生成小学四则运算题目的命令行程序

这个作业属于哪个课程 https://edu.cnblogs.com/campus/gdgy/CSGrade22-34/这个作业要求在哪里 结对项目 - 作业 - 计科22级34班 - 班级博客 - 博客园 (cnblogs.com)这个作业的目标 结对项目——实现一个自动生成小学四则运算题目的命令行程序成员1 陈奕奕 3222004552成员2 林闰…