Linux配置脚本导出运行,linux服务器部署jar包以及shell脚本的书写
背景:记录在linux环境下部署jar程序的过程
1 部署过程记录
1.1 程序结构
这里的main函数就在DemRest2.java 文件中。
为了部署方便,要做到以下两点:
1 在导出的jar包中不包含依赖的jar文件
2 程序用到的配置文件可以让用户进行自定义 ,不将其放在jar包中。
1.2 导出jar包
这里导出普通的jar包即可。为了方便传输,只导出必须的程序文件。
在jar包导出后,进入导出的jar包中,将配置文件tws.properties文件删除。
1.3 程序部署
将所有需要的jar包放在lib目录下面,包括我们导出工程的jar包tws-client-demo.jar
在用户自定义目录中,放置运行脚本和配置文件。
ps:运行脚本所在的目录,就相当于程序运行的根目录,所有的配置文件和运行脚本放置在同一目录即可。
这里程序中怎么读取配置文件,还需要好好研究。。。。。。。
#!/bin/sh
sourceMsgPath=/home/tws/server/tws-test/userMsg/lxw/source/etc/profile
for i in $HOME/server/tws-test/lib/*;
do CLASSPATH=$i:"$CLASSPATH";
done
export CLASSPATH=.:${CLASSPATH}
java demo.rest.DemRest2 $sourceMsgPath$1echo"Success!"
对照以上脚本进行解释:
运行程序:
在用户目录下面,程序能够读到jar包外部的配置文件。
2 标准脚本
在网上找的一个脚本范例:
在编写shell脚本出现错误时候,可以作为参考:
#!/bin/sh
export JAVA_HOME=/usr/java/jdk1.6.0_18
export CLASSPATH=.:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar
for i in lib/*.jar;
do CLASSPATH=$i:${CLASSPATH}
done
export CLASSPATH=.:${CLASSPATH}
java-cp ${CLASSPATH} main方法所在包名.main方法所在的类名
如果上述脚本不能顺利执行,可以尝试
#!/bin/bash后追加
source/etc/profile
source ~/.bash_profile
测试下。。
java -cp java的cp命令
java -cp .;c:\dir1\lib.jar Test
-cp 和 -classpath 一样,是指定类运行所依赖其他类的路径,通常是类库,jar包之类,需要全路径到jar包,window上分号“;”
分隔,linux上是分号“:”分隔。不支持通配符,需要列出所有jar包,用一点“.”代表当前路径。
3 半自动化工程部署
ps:在处理第三方管理平台项目时候,突然想写一个自动化的shell脚本,其实脚本很简单,只不过前期走了些弯路,虽说麻烦,但是对自己来说也是一次提高。
我遇到的问题是
ps:刚开始我还以为是脚本语法问题,后来网上搜索才知道是这个问题。解决后,后面的脚本就是常用命令的集合。
问题:通过ftp传输工具在windows下编辑的脚本,在执行的时候会出现no such file or directory情况。
是因为平台不同导致的。执行下列命令即可
INUX下SHELL编程脚本无法执行,提示no such file or directory.
sudo vim xx.sh
:set ff=unix
:wq
就OK了
(如果是在windows里写的脚本,你输入:set ff 应该显示的是DOS)
最终的shell脚本:
#!/bin/bash
#war包上传临时目录
warPath=/usr/local/tmp-tms
#tomcat中webapps中文件
service_webapps=/usr/local/service-tomcat7/webapps
web_webapps=/usr/local/web-tomcat7/webapps
#待替换的配置文件
from_service_config=$warPath/224-service
to_service_config=$service_webapps/tms_service/WEB-INF/classes
from_web_config=$warPath/224-web
to_web_config=$web_webapps/tms/WEB-INF/classes
deployService(){
#清空tomcat webapps下的文件rm -rf $service_webapps/*echo "完成临时目录的清理:$service_webapps"
#移动war文件到webappps目录
mv $warPath/tms_service.war $service_webapps
echo "完成war文件的移动:$service_webapps/tms_service.war"
#解压war包
cd $service_webapps
unzip tms_service.war -d tms_service
echo "完成war文件解压:$service_webapps/tms_service.war"
#替换war中的配置文件
cp $from_service_config/log4j.properties $to_service_config/log4j.properties
cp $from_service_config/resources.properties $to_service_config/resources.properties
cp $from_service_config/service.xml $to_service_config/service.xml
echo "完成Service工程配置文件的替换!"
}
deployWeb(){
#清空tomcat webapps下的文件
rm -rf $web_webapps/*
echo "完成临时目录的清理:$web_webapps"
#移动war文件到webappps目录
mv $warPath/tms.war $web_webapps
echo "完成war文件的移动:$web_webapps/tms.war"
#解压war包
cd $web_webapps
unzip tms.war -d tms
echo "完成war文件解压:$web_webapps/tms.war"
#替换war中的配置文件
cp $from_web_config/log4j.properties $to_web_config/log4j.properties
cp $from_web_config/service.xml $to_web_config/service.xml
cp $from_web_config/tms.properties $to_web_config/tms.properties
echo "完成web工程配置文件的替换!"
}
##############脚本入口
#./deploy.sh service ---只部署service
#./deploy.sh web ---只部署web
#./deploy.sh both ---同时部署service和web
if [ $1 == "service" ]
then
deployService
echo "只部署service,successful"
elif [ $1 == "web" ]
then
deployWeb
echo "只部署web,successful"
elif [ $1 == "both" ]
then
deployService
sleep 10
deployWeb
echo "同时部署service和web,successful!"
else
echo "请输入一个正确参数:service web both"
fi
View Code
用到啥就去查什么,一切都不是困难,态度决定成效!!!!
Linux配置脚本导出运行,linux服务器部署jar包以及shell脚本的书写相关推荐
- windows服务器部署jar包
服务器部署jar包,提供接口服务常用命令: 我这里打成jar包的名字是zhuganwu_jar(如果你的不是),放到webapps下后,自动解压,里面有一个jar包:zhuganwu.jar 查看进程 ...
- 服务器部署jar包的方式(java)
相关重要指令: //部署运行jar包的指令,这种方式会进入运行的终端界面 nohup java -jar zjyn-0.0.1-SNAPSHOT.jar //部署运行jar包的指令.在之前的基础上, ...
- jar包自动化启动脚本+开机自启
Jar包自动化启动脚本+开机自启 文章目录 Jar包自动化启动脚本+开机自启 内容概要 脚本编写 1.循环遍历目录 2.判断jar包进程重启 开机自启设置 内容概要 本章节内容主要是基于日常工作需要大 ...
- jar包部署shell脚本编写,在服务器上部署jar包,在Linux服务器上部署服务,设置编码格式,设置内存管理
准备步骤: 1.安装java环境,知道java安装目录 2.将jar包拖放或发送至服务器中(目录自定义) 一.编写shell脚本,将以下代码放在shell脚本中,将shell脚本放在jar包同级目录下 ...
- Linux系统防CC攻击自动拉黑IP增强版Shell脚本
Linux系统防CC攻击自动拉黑IP增强版Shell脚本 文章目录 一.Shell代码 二.执行脚本 三.效果测试 四.附加说明 前天没事写了一个防CC攻击的Shell脚本,没想到这么快就要用上了,原 ...
- Linux自定义shell脚本一键启停微服务jar包
Java项目在Linux系统中的部署通常是以tomcat等容器化的方式部署,或者jar包的形式直接运行.在自动化部署畅行的今天,仍然会有不少的公司采用手动部署的方式部署 jar 包.而微服务打包形成的 ...
- Linux系统防CC攻击自动拉黑IP增强版(Shell脚本)
这篇文章主要介绍了Linux系统防CC攻击自动拉黑IP增强版(Shell脚本),需要的朋友可以参考下 前天没事写了一个防CC攻击的Shell脚本,没想到这么快就要用上了,原因是因为360网站卫士的缓存 ...
- 在Linux上部署jar包(不需要Docker,Tomcat等容器)解决xxx.jar中没有主清单属性
一.springboot在idea中通过package命令打包 将target下生成的jar包拉到linux下,并执行jar包如下 [root@localhost oa]# java -jar new ...
- 使用shell脚本完成自动化部署jar包
文章目录 1.前言 2.跳板机 3.服务器 4.注意事项 1.前言 首先我们这里有一台跳板机,然后有一台服务器,现在的要做的就是将跳板机上的jar包文件,然后通过服务器上的脚本实现旧jar包的备份,新 ...
最新文章
- JQuery-- 获取元素的宽高、获取浏览器的宽高和垂直滚动距离
- python与rpc服务
- 华为交换机RRPP配置实验
- python的数据结构包括那些_python算法与数据结构-什么是数据结构
- Linux下安装Python3.6(可用)
- java与js的split方法
- Python与MongoDB的交互
- WaitForSingleObject的使用
- android开发更改内部版本号,分享个老教程:修改手机型号、品牌、内部版本号、Android版本...
- java8官网下载地址
- (首个填坑)联想拯救者Y7000(自带win10 home) 安装Ubuntu16.04.6 + NVIDIA GTX1650驱动
- 关于学习BEX5的问题
- RGMII(Reduced Gigabit Media Independent Interface)
- Word的”交叉引用“和”插入题注“快捷键设置
- Java实验-宠物商店(链表与接口的使用)
- c语言程序设计名片管理系统,《名片管理系统》 - C语言课程设计
- 为什么PrimeTime修timing时,带physical aware还不如不带physical aware
- vue使用v-for动态绑定div背景图片
- 「史上最全的 TCG 规范解读」TCG 工作组规范预览
- 一步一步教你如何利用虚拟机软件安装ubuntu
热门文章
- 【控制】二阶含时滞多智能体系统一致性仿真程序 离散化处理
- 1.7 单层卷积网络-深度学习第四课《卷积神经网络》-Stanford吴恩达教授
- Altium Designer Exception ESocketError in module X2.EXE at 001B15CF (10107) on API 'Socket'
- u-boot分析之命令实现(四)
- Allegro跨分割检查
- Android 4.0 Notification
- 【工具】Excel 表格数据转换成Json格式的实用工具 excel2json
- canvas使用技巧大全
- 目前中关村在线上面的CPU排行情况
- RedHat6.5 搭建glusterfs全过程