安装jdk步骤
将Linux安装jdk的步骤放入shell脚本中
#!/bin/bash
# 阿里云服务器专用 - 全自动安装 OpenJDK 1.8(无交互)
# 仅支持 yum 系系统(CentOS/RHEL/Alibaba Cloud Linux)# 检查 root 权限
if [ "$(id -u)" -ne 0 ]; thenecho "错误:请使用 sudo 或以 root 用户运行!" >&2exit 1
fi# 检查系统类型
if ! command -v yum &>/dev/null; thenecho "错误:仅支持 yum 系系统(CentOS/RHEL/Alibaba Cloud Linux)!" >&2exit 1
fi# 卸载旧版 JDK(静默操作)
echo "正在清理旧版 JDK..."
yum remove -y java-* &>/dev/null
rm -rf /usr/lib/jvm/* /etc/profile.d/jdk.sh# 安装 OpenJDK 1.8(静默安装)
echo "正在安装 OpenJDK 1.8..."
yum install -y java-1.8.0-openjdk-devel &>/dev/nullif ! command -v java &>/dev/null; thenecho "安装失败!请检查 yum 源配置。" >&2exit 1
fi# 自动配置环境变量
JAVA_HOME=$(dirname $(dirname $(readlink -f $(which java))))
cat > /etc/profile.d/jdk.sh <<EOF
export JAVA_HOME=$JAVA_HOME
export JRE_HOME=\$JAVA_HOME/jre
export CLASSPATH=.:\$JAVA_HOME/lib:\$JRE_HOME/lib
export PATH=\$PATH:\$JAVA_HOME/bin
EOFsource /etc/profile.d/jdk.sh# 验证安装
echo "安装完成!OpenJDK 版本:"
java -version
echo -e "\nJAVA_HOME: $JAVA_HOME"
另一种方式实现,阿里云服务器
#!/bin/bash
# Description: 一键安装 JDK 8(支持 Oracle JDK 和 OpenJDK,适配阿里云环境)
# Author: Your Name
# Date: $(date +%Y-%m-%d)# 检查是否为 root 用户
if [ "$(id -u)" -ne 0 ]; thenecho "请使用 sudo 或以 root 用户运行此脚本!"exit 1
fi# 配置参数
JDK_VERSION="8"
ORACLE_JDK_URL="https://download.oracle.com/otn/java/jdk/8u381-b09/jdk-8u381-linux-x64.tar.gz" # 替换为最新版链接
INSTALL_DIR="/usr/lib/jvm"
PROFILE_FILE="/etc/profile.d/jdk.sh"# 检测系统类型
if [ -f /etc/os-release ]; then. /etc/os-releaseOS=$ID
elseecho "无法检测系统类型!"exit 1
fi# 卸载旧版本 JDK(可选)
function remove_old_jdk() {echo "正在检查并卸载旧版 JDK..."case $OS inubuntu|debian)apt-get remove -y openjdk-* >/dev/null 2>&1;;centos|rhel|almalinux|rocky|alinux)yum remove -y java-* >/dev/null 2>&1;;*)echo "未知系统类型,跳过卸载旧版 JDK。";;esac
}# 安装 OpenJDK 8
function install_openjdk() {echo "正在安装 OpenJDK ${JDK_VERSION}..."case $OS inubuntu|debian)apt-get updateapt-get install -y openjdk-8-jdk;;centos|rhel|almalinux|rocky|alinux)yum install -y java-1.8.0-openjdk-devel;;*)echo "不支持的系统类型!"exit 1;;esac
}# 安装 Oracle JDK 8
function install_oracle_jdk() {echo "正在安装 Oracle JDK ${JDK_VERSION}..."# 安装依赖case $OS inubuntu|debian)apt-get updateapt-get install -y wget tar;;centos|rhel|almalinux|rocky|alinux)yum install -y wget tar;;esac# 下载并解压mkdir -p $INSTALL_DIRwget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" \-O /tmp/jdk-${JDK_VERSION}.tar.gz $ORACLE_JDK_URLif [ $? -ne 0 ]; thenecho "下载 Oracle JDK 失败!请检查网络或手动下载。"exit 1fitar -zxvf /tmp/jdk-${JDK_VERSION}.tar.gz -C $INSTALL_DIRrm -f /tmp/jdk-${JDK_VERSION}.tar.gz# 查找解压后的目录JDK_DIR=$(find $INSTALL_DIR -maxdepth 1 -type d -name "jdk1.8*" | head -n 1)if [ -z "$JDK_DIR" ]; thenecho "找不到 JDK 目录!安装失败。"exit 1fi# 设置环境变量echo "export JAVA_HOME=$JDK_DIR" > $PROFILE_FILEecho "export JRE_HOME=\$JAVA_HOME/jre" >> $PROFILE_FILEecho "export CLASSPATH=.:\$JAVA_HOME/lib:\$JRE_HOME/lib" >> $PROFILE_FILEecho "export PATH=\$PATH:\$JAVA_HOME/bin" >> $PROFILE_FILEsource $PROFILE_FILE# 设置默认 JDKupdate-alternatives --install "/usr/bin/java" "java" "$JDK_DIR/bin/java" 1000update-alternatives --install "/usr/bin/javac" "javac" "$JDK_DIR/bin/javac" 1000update-alternatives --set java "$JDK_DIR/bin/java"update-alternatives --set javac "$JDK_DIR/bin/javac"
}# 主菜单
function main() {echo "===================================="echo " JDK 8 安装脚本(适配阿里云服务器)"echo "===================================="echo "1. 安装 OpenJDK 8(推荐)"echo "2. 安装 Oracle JDK 8"echo "3. 退出"read -p "请选择安装类型 [1-3]: " choicecase $choice in1)remove_old_jdkinstall_openjdk;;2)remove_old_jdkinstall_oracle_jdk;;3)echo "已取消安装。"exit 0;;*)echo "无效输入!"exit 1;;esac# 验证安装echo "安装完成!验证 Java 版本:"java -versionecho "JAVA_HOME: $JAVA_HOME"
}# 执行主函数
main
相关文章:
安装jdk步骤
将Linux安装jdk的步骤放入shell脚本中 #!/bin/bash # 阿里云服务器专用 - 全自动安装 OpenJDK 1.8(无交互) # 仅支持 yum 系系统(CentOS/RHEL/Alibaba Cloud Linux)# 检查 root 权限 if [ "$(id -u)" -ne 0 ]; thenech…...
理解 `.sln` 和 `.csproj`:从项目结构到构建发布的一次梳理
理解 .sln 和 .csproj:从项目结构到构建发布的一次梳理 在初学 .NET 项目开发时,很多人都会对 .sln(解决方案)和 .csproj(项目)文件感到疑惑。随着开发经验的积累,我逐渐理解了这些层级的设计意…...
高频算法面试题总结
高频算法面试题总结 排序算法 1. 基础排序算法 快速排序: public void quickSort(int[] arr, int low, int high) {if (low < high) {int pivot = partition(arr, low, high);quickSort(arr, low, pivot - 1);quickSort(arr, pivot + 1, high);} }平均时间复杂度:O(n lo…...
SQL进阶:如何把字段中的键值对转为JSON格式?
JSON 一、问题描述二、ORACLE<一>、键值对拆分(REGEXP_SUBSTR)<二>、转为JSON<三>、不足 三、MYSQL<一>、键值对拆分(RECURSIVE)<二>、转为JSON 一、问题描述 假如某张表的某列是键值对数据,如何把这个键值对转为json格式,数据如下所示 dynast…...
vue3:十二、图形看板- echart图表-柱状图、饼图
一、效果 如图展示增加了饼图和柱状图,并且优化了浏览器窗口大小更改,图表随着改变 二、 饼图 1、新建组件文件 新增组件EchartsExaminePie.vue,用于存储审核饼图的图表 2、写入组件信息 (1)视图层 写入一个div,写入变量chart和图表宽高 <template><div ref…...
nacos-server-2.2.2.tar及使用方式
下载链接 nacos-server-2.2.2.tar包及使用资源-CSDN文库 下载与安装 下载地址:可从 Nacos 官网版本下载页面 或 Nacos GitHub Releases 获取 nacos-server-2.2.2.tar.gz 安装包。 环境准备:Nacos 依赖 Java 环境运行,需确保安装了 64 位 J…...
el-form的label星号位置如何修改
默认情况 修改后 实现代码 .el-form {.el-form-item {.el-form-item__label {padding: 0;&::before {float: none;position: relative;}}} }...
小刚说C语言刷题—1004阶乘问题
1.题目描述 编程求 123⋯n 。 输入 输入一行,只有一个整数 n(1≤n≤10); 输出 输出只有一行(这意味着末尾有一个回车符号),包括 1 个整数。 样例 输入 5 输出 120 2.参考代码(C语言版) #include <stdio…...
Java 集合体系深度解析面试篇
一、Java 集合体系核心架构与高频考点 1. 集合体系架构图(大厂必问) Java集合框架 ├─ Collection(单列集合) │ ├─ List(有序、可重复) │ │ ├─ ArrayList(动态数组,随机…...
websocketd 10秒教程
websocketd 参考地址:joewalnes/websocketd 官网地址:websocketd websocketd简述 websocketd是一个简单的websocket服务Server,运行在命令行方式下,可以通过websocketd和已经有程序进行交互。 现在,可以非常容易地构…...
PCA降维
主成分分析(Principal Component Analysis,PCA)降维是一种广泛使用的无监督机器学习技术,主要用于数据预处理阶段,其目的是在尽量保留数据重要信息的前提下,减少数据的维度。 PCA 的原理 PCA 的核心思想…...
【计算机视觉】OpenCV实战项目: opencv-text-deskew:实时文本图像校正
opencv-text-deskew:基于OpenCV的实时文本图像校正 一、项目概述与技术背景1.1 核心功能与创新点1.2 技术指标对比1.3 技术演进路线 二、环境配置与算法原理2.1 硬件要求2.2 软件部署2.3 核心算法流程 三、核心算法解析3.1 文本区域定位3.2 角度检测优化3.3 仿射变换…...
具身智能时代的机器人导航和操作仿真器综述
系列文章目录 前言 导航和操作是具身智能的核心能力,然而在现实世界中训练具有这些能力的智能体却面临着高成本和时间复杂性。因此,从模拟到现实的转移已成为一种关键方法,但模拟到现实的差距依然存在。本调查通过分析以往调查中忽略的物理模…...
Go语言Stdio传输MCP Server示例【Cline、Roo Code】
Go语言 Stdio 传输 MCP Server 示例 AI 应用开发正处于加速发展阶段,新技术和新方法不断涌现。Model Context Protocol (MCP) 作为一个开放标准,正在改变 AI 应用与数据源和工具集成的方式。 Go-MCP 是一个 MCP 协议的 GO 实现&…...
Xcode16.3配置越狱开发环境
首先先在https://developer.apple.com/xcode/resources/ 这里面登陆Apple账号,然后访问url下载 https://download.developer.apple.com/Developer_Tools/Xcode_16.3/Xcode_16.3.xip 1、安装theos https://theos.dev/docs/installation-macos 会安装到默认位置~/th…...
AWS IoT Core与MSK跨账号集成:突破边界的IoT数据处理方案
随着企业规模的扩大和业务的复杂化,跨账号资源访问成为云架构中的一个常见需求。本文将深入探讨如何实现AWS IoT Core与Amazon MSK(Managed Streaming for Apache Kafka)的跨账号集成,为您的IoT数据处理方案开辟新的可能性。无论您是正在构建多账号架构,还是需要整合不同部门的…...
【Python 列表(List)】
Python 中的列表(List)是最常用、最灵活的有序数据集合,支持动态增删改查操作。以下是列表的核心知识点: 一、基础特性 有序性:元素按插入顺序存储可变性:支持增删改操作允许重复:可存储重复元…...
在另一个省发布抖音作品,IP属地会随之变化吗?
你是否曾有过这样的疑惑:出差旅游时在外地发布了一条抖音视频,评论区突然冒出“IP怎么显示xx省了?”的提问?随着各大社交平台上线“IP属地”功能,用户的地理位置标识成为公开信息,而属地显示的“灵敏性”也…...
在线工具源码_字典查询_汉语词典_成语查询_择吉黄历等255个工具数百万数据 养站神器,安装教程
在线工具源码_字典查询_汉语词典_成语查询_择吉黄历等255个工具数百万数据 养站神器,安装教程 资源宝分享:https://www.httple.net/154301.html 一次性打包涵盖200个常用工具!无论是日常的图片处理、文件格式转换,还是实用的时间…...
D720201 PCIE 转USB HUB
1. 启动时出现了下面错误 [ 4.682595] pcieport 0004:00:00.0: Signaling PME through PCIe PME interrupt [ 4.684939] pci 0004:01:00.0: Signaling PME through PCIe PME interrupt [ 4.691287] pci 0004:01:00.0: enabling device (0000 -> 0002) [ 5.2962…...
QT事件介绍及实现字体放大缩小(滚轮)
使用update是为了回调paintEvent这个事件函数 pic.load是加载一张图片 setfixedsize(pic.siez())是为了把按键的矩形区域变成和pic一样大 painter.drawPixmap(rec(),pic)就是在按键的矩形区域画一个pic emit clicked();是用来发送clicked信号的,当然你也可以在事…...
p2p虚拟服务器
ZeroTier Central ✅ 推荐工具:ZeroTier(免费、稳定、跨平台) ZeroTier 可以帮你把多台设备(无论是否跨网)加入一个虚拟局域网,彼此间可以像在同一个 LAN 中通信,UDP 视频、文件传输、SSH 等都…...
高尔夫基本知识及规则·棒球1号位
高尔夫与棒球的结合看似跨界,但两者在规则、策略和运动哲学上存在有趣的关联性。以下从五个角度进行对比分析,揭示它们的异同与潜在联系: 一、核心目标的对比性结合 高尔夫:以最少击球次数完成18洞(标准杆72杆左右&am…...
数据结构(1)复杂度
一、数据结构概要 1.数据结构 数据结构是计算机存储、组织数据的方式,是数据相互之间存在一种或者多种特定关系的集合。没有一种单一的数据结构可以解决所有问题,因此要学习多种多样的数据结构。如:线性表、图、树等。 2.算法 算法其实就…...
多分类问题softmax传递函数+交叉熵损失
在多分类问题中,Softmax 函数通常与交叉熵损失函数结合使用。 Softmax 函数 Softmax 函数是一种常用的激活函数,主要用于多分类问题中。它将一个实数向量转换为概率分布,使得每个元素的值在 0 到 1 之间,且所有元素的和为 1。 …...
Java如何获取电脑分辨率?
以下是一个 Java 程序示例,用于获取电脑的主屏幕分辨率: import java.awt.*; public class ScreenResolutionExample { public static void main(String[] args) { // 获取默认的屏幕设备 GraphicsDevice device GraphicsEnvironm…...
【NextPilot日志移植】logged_topics.cpp解析
📘 PX4 Logger 模块注册 uORB 主题、实际订阅与数据采集流程 🧭 目的与背景 在 PX4 飞控中,日志记录模块 logger 需要记录多个 uORB 主题的数据(如 IMU、GPS、姿态等)。为了系统统一管理这些记录需求,log…...
CSS vertical-align
这里的小空白就是为了和基线对齐 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content&quo…...
“工作区”升级为“磁盘”、数据集统计概览优化|ModelWhale 版本更新
本次更新围绕用户在实际项目中对平台的理解和管理体验进行了多项优化。 “工作区”升级为“磁盘”、及其管理优化 平台“工作区”概念正式更名为“磁盘”,突出其存储功能。原有以目录代称的存储区域划分同步更名,其中“work目录”更改为“个人磁盘”&am…...
mac 电脑如何打开剪切板
mac 不像 Windows 拥有官方的剪贴板应用。所以我们需要使用官方商店中的第三方应用实现剪切板管理的功能。 打开苹果电脑上的 App Store,下载 PasteMe 或 Paste 等复制历史记录的管理工具。(PasteMe 为买断制18元,Paste为订阅制,…...
信息系统项目管理师-软考高级(软考高项)2025最新(十二)
个人笔记整理---仅供参考 第十二章项目质量管理 可能考论文??? 12.1管理基础 12.2项目质量管理过程 12.3规划质量管理 12.4管理质量 12.5控制质量...
Java、javax 和 Jakarta有什么区别?
在 Java 开发中,我们经常会看到 java、javax 和 jakarta 这些包名前缀。本文将详细介绍这三个命名空间的含义、发展历程以及它们之间的关系,帮助你更好地理解 Java 生态系统。 一、Java:核心 API 的基础 ✅ 含义: java 是 Java 标准库的核心包名。所有以 java. 开头的类构…...
LeetCode百题刷002摩尔投票法
遇到的问题都有解决的方案,希望我的博客可以为你提供一些帮助 图片源自leetcode 题目:169. 多数元素 - 力扣(LeetCode) 一、排序法 题目要求需要找到多数值(元素个数>n/2)并返回这个值。一般会想到先…...
【推荐笔记工具】思源笔记 - 隐私优先的个人知识管理系统,支持 Markdown 排版、块级引用和双向链接
Typora 使用Typora好多年了,一直非常的喜欢这个简洁的Markdown编辑工具,低版本的免费且好用。 Typora官网地址: https://typora.io/ https://typoraio.cn/ Typora的文档树如下,细看后,总觉得差点意思! 思源笔记 今…...
ACTF2025 - Web writeup
ACTF2025 - Web writeup ACTF upload 进去后是一个登录界面,输入用户名后登录,然后到一个文件上传的界面。 在 /upload?file_path 处,可以实现任意文件读取,文件内容保存在 img 标签中的 base64 值中。 示例请求:…...
使用Java实现HTTP协议服务:从自定义服务器到内置工具
在Web开发领域,HTTP协议是服务器与客户端(如Web浏览器)通信的核心。Java作为一种多功能且强大的编程语言,提供了多种方法来实现HTTP协议服务,满足从学习实验到生产部署的各种需求。本文将深入探讨在Java中实现HTTP服务的三种主要方法:使用ServerSocket构建自定义HTTP服务…...
【星海随笔】信息安全相关标准
重要的国际信息安全标准> 国际标准化组织(ISO) 该组织成立于1947年2月23日,总部位于瑞士日内瓦 国际电工委员会(IEC) 成立于1906年,最初总部设在英国伦敦,但后来于1948年迁至瑞士日内瓦…...
检查当前 Docker 使用的 默认运行时(default runtime)方法
目录 ✅ 方法一:查看 Docker 配置文件(最准确) ✅ 方法二:使用 Docker info 命令 ✅ 方法三:检查特定容器的运行时 说明:常见的 Docker Runtime ✅ 方法一:查看 Docker 配置文件(…...
【论文阅读】基于客户端数据子空间主角度的聚类联邦学习分布相似性高效识别
Efficient distribution similarity identification in clustered federated learning via principal angles between client data subspaces -- 基于客户端数据子空间主角度的聚类联邦学习分布相似性高效识别 论文来源TLDR背景与问题两个子空间之间的主角(Principa…...
MySQL 性能调优:从执行计划到硬件瓶颈
MySQL 性能调优:从执行计划到硬件瓶颈 一、性能调优的宏观视角与核心挑战 在数字化浪潮下,企业数据量呈指数级增长,MySQL 作为主流关系型数据库,面临着巨大的性能压力。某电商平台日均订单量突破千万,高峰期数据库响…...
a-range-picker 格式化 M2 为正确日期格式
直接打印 range-picker value 是一个满足 dayjs 规则的数组: Reactive<1. Array(2)1. 0:Reactive<1. M2>2. 1: M2 {$L: en, $u: undefined, $d: Fri May 02 2025 14:50:00 GMT0800 (中国标准时间), $y: 2025, $M: 4, …}3. length: 24. [[Prototype]]: Ar…...
shopping mall(document)
shopping mall(document) 商城的原型,学习,优化,如何比别人做的更好,更加符合大众的习惯 抄别人会陷入一个怪圈,就是已经习惯了,也懒了,也不带思考了。 许多产品会迫于…...
【软件设计师:软件】20.软件设计概述
一、软件设计基本原则 一、软件设计基本原则 1. 模块 是指执行某一特定任务的数据结构和程序代码。 将模块的接口和功能定义为其外部特性将模块的局部数据和实现该模块的程序代码称为内部特性。在模块设计时,最重要的原则就是实现信息隐蔽和模块独立。 2 . 信息隐蔽 将每…...
ArcScroll: 弧形滑动控件
一. 什么是ArcScroll? ArcScroll是一种基于Scroll控件实现的弧形滑动控件。可以让Scroll内容项沿着一个圆心的轨迹滑动,从而实现内容弧形滑动的效果。如下图: 水平滑动: 垂直滑动: 二. 实现方案 以下,以水平的方向…...
芋道框架 账号未登录、租户标识未传递
一. 账号未登陆 {"code": 401,"data": null,"msg": "账号未登录" } 将接口中的 PreAuthorize 注解删除, 使用 PermitAll 注解, 设置 PermitAll 无需认证 Spring Security 中的 YudaoWebSecurityConfigurerAdapter 有详细说明 PostM…...
【计算机视觉】OpenCV项目实战:get_inverse_perspective:基于OpenCV的透视图转化为不同平面
get_inverse_perspective:逆透视变换的算法实现与实战指南 一、项目概述与技术背景1.1 核心功能与技术价值1.2 逆透视变换原理1.3 技术指标对比 二、环境配置与算法实现2.1 硬件要求2.2 软件部署依赖安装核心代码结构 2.3 校准参数配置 三、核心算法优化3.1 矩阵运算…...
Jsoup与HtmlUnit:两大Java爬虫工具对比解析
Jsoup:HTML解析利器 定位:专注HTML解析的轻量级库(也就是快,但动态页面无法抓取) 核心能力: DOM树解析与CSS选择器查询 HTML净化与格式化 支持元素遍历与属性提取 应用场景:静态页面数据抽…...
使用 ANSYS AEDT(单向耦合)进行高功率同轴射频滤波器的热分析
电热模拟 当今无线射频设备日益复杂,对大型复杂射频设计的精确高效仿真需求也随之增加。在设计早期识别和预测潜在问题可以节省资源、时间和成本。热量会降低电子设备的性能和可靠性,因此热分析对于确定设备在实际工作条件下是否能达到预期性能至关重要…...
Baklib实战企业内容与中台管理差异解析
企业内容管理中台本质差异 企业内容管理系统(CMS)与内容中台的核心差异在于战略定位与技术路径的本质性区隔。传统CMS聚焦于内容存储与审批流程的线性管理,而内容中台则构建起全域数据服务中枢,通过API接口实现跨系统内容资产调用…...
API请求参数有哪些?
通用参数 app_key:应用的唯一标识,用于验证应用身份,调用API时必须提供。 timestamp:请求时间戳,通常为当前时间的毫秒级时间戳,用于防止请求被重放攻击。 format:返回数据的格式,…...