一、介绍
实际项目中为了将java程序部署到服务器上,服务器的环境和开发者在自己的电脑上运行程序是不一样的,开发期间程序的运行一般依赖于IDE上面集成好的环境,只要在软件上面直接运行main方法一般即可验证,然而Linux服务上面一般除了我们安装的jdk就没有别的环境,在不考虑有各种集成好的发布独立程序的平台的情况下,一般需要我们自己编写运行脚本等各种运维脚本了
二、服务器环境搭建
1、安装jdk、搭建java运行环境,配置JAVA_HOEM到环境变量中
2、规范部署程序目录结构
├── project
│ ├── bin 运维脚本存放目录
│ ├── config 配置文件存放目录
│ ├──
lib jar包存放目录
│ └── logs 运行日志存放目录
3、将代码排除依赖包和配置文件打包存放进相应目录
可使用各种ant maven甚至直接使用ide进行编译打包,注意排除依赖的jar以及相应配置文件,以便于在服务器根据需求进行配置 - 依赖包以及编译打包好的程序存放lib目录 - 配置文件存放于config目录
三、运维脚本
start.sh
base_dir=
"/home/bingchenglin/project"
java_home=${JAVA_HOME}
if [ -z
"${java_home}" ]
then
echo
"JAVA_HOME is empty!"
exit
0
fi
for i
in `
find ${base_dir}/lib -name "*.jar"`
do
CP=
$CP:$i
done
if [ -z
"${CLASSPATH}" ]
then
CLASSPATH = .:${JAVA_HOME}/
lib:$JAVA_HOME/jre/lib
fi
CLASSPATH=${CLASSPATH}:${CP}:${base_dir}/config
export CLASSPATH
echo
"\n"
echo
"CLASSPATH=${CLASSPATH}"
echo
"nohup ${java_home}/bin/java -Dfile.encoding=UTF-8 com.modelsystem.Main >> ${base_dir}/logs/console.log 2>&1 &"
nohup ${java_home}/bin/java -Dfile.encoding=UTF-
8 com.modelsystem.Main >> ${base_dir}/logs/
console.log
2>&
1 &
echo
"\n"
echo
"启动完成,请查看日志"
stop.sh
PROCESS_NAME=
"com.modelsystem.Main"
PROCESS_PARM=
""
USER=
"bingchenglin"
ps -ef|grep ${PROCESS_NAME} |grep ${PROCESS_PARM} |grep ${USER} | grep java | grep -v grep | awk
'{print $2}' |
while read pid
do
kill ${pid}
2>&
1 >/dev/
null
echo
"进程名称:${PROCESS_NAME},参数:${PROCESS_PARM},PID:${pid} 成功停止"
done
可以根据其他需求添加各种监控和清除日志的脚本