shell脚本一键安装JDK及配置环境变量

2023-11-20

这是我学了半天shell写出来的,不适合大神看。

为什么我要写这样安装JDK并配置环境变量的脚本呢?因为我和linux打交道还是比较多的,然而每次都要安装JDK,配置环境变量,这样的事情对于刚接触linux的人来说是很乐意做的,但是接触多了,总是做这样的事情没有意思,同时,这个简单的脚本最主要的是练习一下自己的shell编程。

只需要执行一条命令即可安装JDK,配置环境变量:

./jdk_install.sh /usr/local/java/jdk-7u80-linux-x64.tar.gz

参数只传递一个,就是你要解压的jdk压缩包的存放位置,jdk的安装路径为/usr/local/jdk/

下面将贴出jdk_install.sh脚本文件:

#!/bin/bash

JAVA_HOME=''
jdkDir=/usr/local/jdk/

#校验解压JDK的文件夹
if [ -e $jdkDir ]
then 
	echo "$jdkDir文件夹已存在,执行被迫终止!"
	exit
fi

echo "检查压缩包是否存在..."
if [ -f $1 ]
then
	mkdir $jdkDir
	echo "开始解压..."
	tar -zxvf $1 -C $jdkDir
	for file in $jdkDir*
	do
		if [ -d $file ]
		then
			JAVA_HOME=$file
		fi
	done
	echo "JAVA_HOME=$JAVA_HOME"	

else
	echo 文件不存在:$1
	exit
fi

#修改环境变量

echo "export JAVA_HOME=$JAVA_HOME" >> /etc/profile
echo "export PATH=\$PATH:\$JAVA_HOME/bin" >> /etc/profile
echo "export CLASSPATH=.:\$JAVA_HOME/lib/dt.jar:\$JAVA_HOME/lib/tools.jar" >> /etc/profile

echo "jdk 安装配置完成"
echo `java -version`

简单吧。。。哈哈,接下来有时间我会研究将各种软件的安装通过shell脚本的形式写出来,兄弟们,一起加油!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

shell脚本一键安装JDK及配置环境变量 的相关文章

  • Java Quartz框架

    Java Quartz框架 Java Quartz是一个开源的作业调度框架 用于在Java应用程序中实现定时任务和调度功能 它提供了灵活的任务调度和执行机制 可以根据时间表或触发事件来触发任务的执行 Quartz的主要作用是简化定时任务的管
  • elasticsearch query bool nested对象 聚合

    复杂的查询 下面的查询是小编自己研究写的一个比较复杂 的语句 涉及到查query bool must 已经过滤条件term 关键词介绍 from 表示从第几条开始返回 size 表示返回的题目数大小 query 查询语句 bool must
  • 抢「.AI」域名,成了 3000 万美元的大生意

    作者 汤一涛编辑 靖宇 1848 年 一个木匠在加利福尼亚州科罗马地区的一条河中偶然发现了金箔 尽管他曾试图保守这个秘密 但是金子不会说谎 一场席卷全美的淘金热就此开始 许多人怀揣着一夜暴富的梦想涌入加利福尼亚 1847 到 1870 年间
  • tensorflow-GPU版本安装,RTX3060

    首先需要安装好pycharm和anaconda 开始安装tensorflow GPU版 一 查看版本 1 首先检查自己电脑的cudn版本 开始 gt 设置 gt 应用 gt 安装的应用 搜cuda 我的是cuda 11 6 2 查看显卡型号
  • qt线程

    qt4 7 之前的线程操作 代码 需要重写一个类 继承QTread class mythread public QThread Q OBJECT 必须加 否则出现一些奇怪问题 public mytherad protected void r
  • 自动化办公-3.python自动化之word操作

    一 课前准备 python 处理 Word 需要用到 python docx 库 终端执行如下安装命令 pip3 install python docx 备注 可能word用的少 这块并没认真 但是后面的邀请函这块可以作为有用参考 没准会用
  • 什么是SSL协议?

    转自 微点阅读 https www weidianyuedu com 什么是SSL协议 SSL协议是一种安全传输协议 SSL是SecureSocketLayer的缩写 即安全套接层协议 该协议最初由Netscape企业发展而来 目前已经成为
  • 在本地部署自己的漏洞文章武器库(详细步骤说明)

    在本地部署自己的漏洞文章武器库 在平时我们进行web渗透的过程中 有些poc CVE详细情况需要进行查询之后才能进行利用 对于初级渗透人员来说 对漏洞情况和利用方式掌握不足的情况下 打造属于自己的漏洞武器库就至关重要了 可以提高平时工作和h
  • 调试osgEarth(十五)分页瓦片加载器在更新遍历时对请求处理过程(1)

    感谢 hankern 学习链接https blog csdn net hankern article details 84195754 继续调试 我感觉有两点 1 处理能处理的请求 2 摒弃处理过的请求和超时的请求 从上图可以看到 每帧可以

随机推荐

  • Mybatis进阶--批量新增数据

    一 传统JDBC进行批处理操作 package jdbc import java io InputStream import java sql import java util Properties public class jdbcUti
  • maven更换阿里云镜像

    1 setting文件增加maven节点
  • numpy索引与切片

    一 整数索引 作用 要获取数组的单个元素 指定元素的索引即可 例子 x np array 1 2 3 4 5 6 7 8 print x 2 3 x np array 11 12 13 14 15 16 17 18 19 20 21 22
  • listview item设置点击跳转_Flutter之路由及页面跳转与返回

    1 路由跳转到页面思路 设计三个按钮 然后三个点击事件 利用Navigator of context push MaterialPageRoute builder context gt page 进行跳转新页面2 页面折回到路由在跳转的页面
  • 小程序v-for与key值使用

    小程序中的v for和key与Vue中的用法基本相同 v for用于循环渲染列表 key用于给每个循环项分配一个唯一的标识 使用v for时 通常建议使用wx for代替 例如
  • SQL Server 中给字段设置默认值的方式

    1 在创建表的时候创建默认值 if object id T U is not null drop table T GO create table T ID int Name varchar 20 LoginTime datetime def
  • RecyclerView应用 —— 好友列表实现

    实现的效果类似于QQ好友列表 点击可展开 再次点击收起 两个Item的布局都很简单 这里就不给布局代码了 值得一提的是 RecyclerView本身并没有ListView那样的点击效果 想要类似效果可以为Item的根布局写个Selector
  • JS混淆加密的代码如何解密

    科普简介 混淆是指将 JavaScript 代码变得难以理解的过程 这可以通过更改变量名 函数名和类名 以及将代码压缩到一行来实现 混淆的主要目的是使代码难以被盗用 并保护代码的知识产权 功能作用与常用的解决方案 混淆后的代码很难阅读 但是
  • Maven进阶-配置仓库

    1 1maven介绍 Maven是一个项目管理和综合工具 Maven提供了开发人员构建一个完整的生命周期框架 开发团队可以自动完成项目的基础工具建设 Maven使用标准的目录结构和默认构建生命周期 主要服务于基于Java平台的项目构建 依赖
  • Linux系统如何看目录属于哪个磁盘分区

    Linux是先有目录 再有磁盘分区 df h 目录 例如 没有挂载磁盘的目录 显示在系统盘 root iZ2ze57v3n0zma46zqiq8nZ sh 1 5 5 df h alidata Filesystem Size Used Av
  • Unity使用spine动画

    Unity使用spine动画 在 Unity 中 常常使用 Spine 来制作一些动画 引擎本身并不能直接播放 Spine 动画 需要额外导入一个 RunTime 插件库才能支持 官网插件导入 当然 也可以到 Spine 官网关于 Unit
  • 机器学习原理(1)集成学习基本方法

    一 什么是集成学习 集成学习 ensemble learning 通过将多个学习器进行组合来完成学习任务 下图显示集成学习的一般结构 取自周志华老师的西瓜书 个体学习器通常由一种现有的学习算法从训练数据产生 例如决策树 C4 5 CART
  • C语言之——自定义数据类型

    目录 前言 什么是自定义数据类型 一 自定义数据类型之 数据类型命名 1 深入应用typedef 二 自定义数据类型之 结构体类型命名 1 深入理解struct结构体 三 自定义数据类型之 联合体类型命名 1 union与struct的区别
  • FreeRTOS多任务调度器基础

    Cortex M4中SysTick调度器核心 Cortex M4中的中断管理 Cortex M4中影子栈指针 Cortex M4中SVC和PendSV异常 1 Cortex M4中SysTick调度器核心 systick每一次中断都会触发内
  • c语言—指针非常全面、详细

    目录 一 初步认识指针 一级 二 数组指针 1 一维数组与指针 2 二维数组与指针 三 函数指针 四 指针数组 2 函数指针数组 五 指针函数 六 二级 多级 指针 七 指针定义的归纳 一 初步认识指针 一级 1 指针变量 指针变量是一个特
  • c++优先队列简介及例题:5.4.1 围栏修复

    优先队列 其实就是个队列 只不过里面的元素会被自动按一定的顺序来排列 可以是递增顺序 也可以是递减顺序 写法如下 头文件 include
  • 020 - STM32学习笔记 - Fatfs文件系统(二) - 移植与测试

    020 STM32学习笔记 Fatfs文件系统 二 移植与测试 上节学习了FatFs文件系统的相关知识 这节内容继续学习在STM32上如何移植FatFs文件系统 并且实现文件的创建 读 写与删除等功能 各位看官觉得还行的话点点赞 收藏一下呗
  • FastDFS-01-单机和集群搭建

    我是码赛客1024 本节我们一起搭建FastDFS 一 介绍 FastDFS是一个开源的轻量级分布式文件系统 它对文件进行管理 功能包括 文件存储 文件同步 文件访问 文件上传 文件下载 等 解决了大容量存储和负载均衡的问题 特别适合以文件
  • 对象创建的几个步骤

    对象创建的几个步骤 一 先把要创建的对象的类信息加载进内存 二 在内存开辟空间 1 如果内存是规整的 则使用指针碰撞 2 如果不规整 则会维护一个空闲列表 内存是否规整根据具体的垃圾回收算法来决定 三 开辟空间需要解决并发问题 在堆中创建对
  • shell脚本一键安装JDK及配置环境变量

    这是我学了半天shell写出来的 不适合大神看 为什么我要写这样安装JDK并配置环境变量的脚本呢 因为我和linux打交道还是比较多的 然而每次都要安装JDK 配置环境变量 这样的事情对于刚接触linux的人来说是很乐意做的 但是接触多了