對於Java應用程序(非web應用),在部署後,常常需要一個啟動腳本來加載一些第三方的jar包,並啟動應用。
對於java應用程序,我一般喜歡將程序的目錄結構寫成如下的方式:
myapp
|----lib
|----bin
|----packages
一些配置文件和屬性文件
一個startup.sh、或bat啟動腳本
其中,packages是程序的根包。其中有子包和class文件等。
在包中,有一個Main.calss的類,這個作為程序的入口。
下面給出一個最一般的寫法:
startup.sh
#!/bin/sh
programdir="."
num=$#
temp=$CLASSPATH
#setting libs path
libs=../lib/*
append(){
temp=$temp":"$1
}
for file in $libs; do
append $file
done
export CLASSPATH=$temp:.:../:$programdir
export LANG=zh_CN
nohup java -classpath $CLASSPATH packaages.xxx.yyy.Main &
這樣,只要按照上面的方式組織程序,啟動腳本就需要改動下Main前面的包路徑即可。
nohup:上面腳本中最後一行前有nohup,這是將程序的輸入輸出都將附加到當前目錄的 nohup.out 文件中。
&:是將程序作為後台進程來運行,不會因為終端的關閉而關閉。
出處:http://lavasoft.blog.51cto.com/62575/204713