对于Java应用程序(非web应用)在部署后常常需要一个启动脚本来加载一些第三方的jar包并启动应用
对于java应用程序我一般喜欢将程序的目录结构写成如下的方式
myapp
|lib
|bin
|packages
一些配置文件和属性文件
一个startupsh或bat启动脚本
其中packages是程序的根包其中有子包和class文件等
在包中有一个Maincalss的类这个作为程序的入口
下面给出一个最一般的写法
startupsh #!/bin/sh
programdir=
num=$#
temp=$CLASSPATH
#setting libs path
libs=/lib/*
append(){
temp=$temp:$
}
for file in $libs; do
append $file
done
export CLASSPATH=$temp::/:$programdir
export LANG=zh_CN
nohup java classpath $CLASSPATH packaagesxxxyyyMain &
这样只要按照上面的方式组织程序启动脚本就需要改动下Main前面的包路径即可
nohup上面脚本中最后一行前有nohup这是将程序的输入输出都将附加到当前目录的 nohupout 文件中
&是将程序作为后台进程来运行不会因为终端的关闭而关闭