Linux 环境部署 jar项目
来源:互联网 发布:粉笔公考网络课 编辑:程序博客网 时间:2024/06/14 05:32
Linux 环境部署 jar项目
在很多小公司,很多时候一个后台程序员还要承担一部分运维的角色,难免避免不了自己动手上某云上部署后台项目,war包暂且这里就不介绍了,这次主要记录下部署用maven打包成jar包的项目。
- Linux 环境部署 jar项目
- 配置java环境
- 查看操作的系统位数
- 下载jdk
- 配置环境变量
- 配置运行脚本
- 配置脚本
- 解释脚本内容
- 使用
- 配置java环境
配置java环境
1.查看操作的系统位数
uname -ar
出现是x86_64说明是 64位的
也可以用getconf LONG_BIT
直接输出当前系统位数
2.下载jdk
进入orcale官网选择需要下载的版本jdk1.8传送门
这里我选择的是
8u144-b01
的rpm包,按照往常linux下的下载命令,我们会使用wget
命令进行下载再解压安装
wget http://download.oracle.com/otn-pub/java/jdk/8u144-b01/090f390dda5b47b9b721c7dfaa008135/jdk-8u144-linux-x64.rpm
天啦噜!怎么下载的是一个 5.2k的html?说好的jdk呢?
我们再仔细看jdk下载页面,会发现有一个Accept License Agreement
需要勾选才能下载 。经过翻阅资料(百度),最终用下面这个命令成功下载了jdk。
wget --no-check-certificate --no-cookie --header "Cookie: oraclelicense=accept-securebackup-cookie;" http://download.oracle.com/otn-pub/java/jdk/8u144-b01/090f390dda5b47b9b721c7dfaa008135/jdk-8u144-linux-x64.rpm
然后执行
rpm -ivh jdk-8u144-linux-x64.rpm
安装jdk
如果下载的是tar.gz包,直接用命令tar -zxvf jdk-8u92-linux-x64.tar.gz
解压即可
3.配置环境变量
执行vi /etc/profile
,在文件末尾添加
export JAVA_HOME=/home/roo/jdk1.8.0_92 (这里修改为自己的jak安装路径)export PATH=$JAVA_HOME/bin:$PATHexport CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
然后执行java -version
看看是否配置成功
配置运行脚本
1.配置脚本
选好你要部署到的文件路径 ,假设项目名是ABC,这里我选的是/home/ABC/
,然后建立几个文件夹和一个运行脚本。
cd /home/ABCmkdir appmkdir configmkdir heapdumpmkdir logtouch restart.sh
目录结构是
|—–home
|———ABC
|————–app (存放ABC.jar)
|————–config (jar项目的配置文件{application.yml等},jar项目运行的时候,优先使用这里的配置文件,若没有才使用jar包里的配置文件)
|————–heapdump (保存Heap Dump信息)
|————–log (相关log)
|————–restart.sh (运行脚本)
然后进行编写
restart.sh
脚本的内容
#!/bin/bashbase_home='/home/ABC'app_name='ABC'pid=`ps -ef|grep ${app_name}|grep -v grep|grep -v restart|awk '{print$2}'`if [ -n "${pid}" ] ;then kill -9 ${pid} sleep 10figclog_file=$base_home/log/gc.logdump_dir=$base_home/heapdumperrorlogs_dir=$base_home/logjava -Xmx1g -Xms1g -XX:+UseParallelGC -XX:+UseParallelOldGC -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+UseGCLogFileRotation -XX:GCLogFileSize=128M -XX:NumberOfGCLogFiles=1 -Xloggc:${gclog_file} -XX:HeapDumpPath=${dump_dir} -jar $base_home/app/${app_name}.jar --spring.config.location=$base_home/config/application.yml >> $base_home/log/${app_name}_$(date +'%Y%m%d').log &
2.解释脚本内容
base_home='/home/ABC'
: ABC项目的根路径app_name='ABC'
: 项目名称(即/home/ABC/app/ABC.jar
的文件名)pid=`ps -ef|grep ${app_name}|grep -v grep|grep -v restart|awk '{print$2}'`
: 找到ABC项目当前运行的进程号(若有)
if [ -n "${pid}" ] ;then
kill -9 ${pid}
sleep 10
figclog_file=$base_home/log/gc.log
dump_dir=$base_home/heapdump
errorlogs_dir=$base_home/log
最后的运行命令有点复杂,让我们一个个解读
- 这么长的命令,其实运行起来的命令是很简单
java -jar $base_home/app/${app_name}.jar &
,这样即可成功运行起来,&
是让此命令后台运行 ,这里这么复杂是进行了jvm优化。 -Xmx1g
: 设置JVM最大可用内存为1g。-Xms1g
: 设置JVM促使内存为1g。此值可以设置与-Xmx相同,以避免每次垃圾回收完成后JVM重新分配内存。-XX:+UseParallelGC
: 选择垃圾收集器为并行收集器。-XX:+UseParallelOldGC
: 配置年老代垃圾收集方式为并行收集。-XX:+PrintGCDetails
: 可以详细了解GC中的变化。-XX:+PrintGCTimeStamps
: 配合上面的PrintGCDetails
,可以了解这些垃圾收集发生的时间,自JVM启动以后以秒计量。-XX:+UseGCLogFileRotation
: 启用GC日志文件的自动转储。-XX:GCLogFileSize=128M
: 控制GC日志文件的大小。-XX:NumberOfGCLogFiles=1
: GC日志文件的循环数目。-Xloggc:${gclog_file}
: 把gc日志信息记录到文件gclog_file=$base_home/log/gc.log
。-XX:HeapDumpPath=${dump_dir}
: 将Heap Dump信息保存到dump_dir=$base_home/heapdump
。--spring.config.location=$base_home/config/application.yml
: 运行的配置文件,若没有config/application.yml
,则用jar里的配置文件。>> $base_home/log/${app_name}_$(date +'%Y%m%d').log
将运行的log信息保存到$base_home/log
文件夹下,log文件会以日期命名${app_name}_$(date +'%Y%m%d').log
最终的名字可能是ABC_20171206.log
。
3.使用
经过对restart.sh
脚本的编写,然后执行chmod +x restart.sh
这个脚本就可以正常运行了 sh restart.sh
(要确保ABC.jar包已经上传到app/文件夹下)
- Linux 环境部署 jar项目
- Linux环境下项目部署
- Linux部署javaWeb项目环境
- java项目linux环境部署
- linux下部署rabbitmq和web项目和jar项目
- Linux环境java项目安装部署
- Linux环境下快速项目部署
- Linux环境下,部署web项目
- linux,windows环境项目部署tomcat
- linux环境部署java web项目
- 在linux服务器上面部署java web项目jar包
- jenkins部署jar项目、springboot项目部署
- linux部署可执行jar
- 项目环境部署
- 使用Xshell工具远程Linux环境部署web项目
- 新环境部署(linux硬盘挂载项目迁移启动)
- 新环境部署(linux硬盘挂载项目迁移启动)
- 二十五.将ECHO项目部署至LINUX环境
- java 日历窗口小程序
- linux实现共享内存同步的四种方法一
- spring cloud配置中心常用配置
- Leetcode 79. Word Search
- 记一次ELK从5.5.x升级到6.0.0的过程
- Linux 环境部署 jar项目
- 关于微信小程序<text>标签用flex布局不能居中的问题解决
- Git使用
- 思维导图Mindmaster插入图片详细教程
- 程序与进程的简单小知识
- 软考常考知识点整理-V型生命周期模型
- Qt 事件过滤器
- 萤石视频接口(tp后台)
- 空间数据shp md gdb用sde连接