在项目中有个java工程部署在linux上,需要用shell/ target=_blank class=infotextkey>shell脚本方法启动。
工程结构,如下:
bin下面是编译后java的文件,bat下面是一些启动脚本,bat中的lib中放的是该工程所需要的所有jar包。
shell脚本内容,如下:
大概的步骤:
1,首先,找到java的生存环境,jdk安装目录。
2,其次,把工程依赖的jar包加载进来。
3,通过java命令运行启动的程序。
cur_dir=$(pwd) 加载当前目录,
bin_dir=$(dirname $cur_dir)/bin 加载父级下的bin目录 (当前目录跟bin目录不处在同一层级)
1、加载jdk环境
复制代码 代码示例:
if [ -d /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64/jre ]
then export JAVA_HOME=/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64/jre
2、加载java运行命令
复制代码 代码示例:
if [ -f $JAVA_HOME/bin/java ]
then export JAVA_EXE=$JAVA_HOME/bin/java
3、加载bat子目录lib中的所有jar包
复制代码 代码示例:
temp=$cur_dir/lib
for file in "$temp"/*.jar
do
path="$path":"$file"
done
CLASSPATH=$path:$bin_dir
4、设置要启动的java程序
复制代码 代码示例:
MAIN_CLASS=cn.cntv.vms.scheduled.sample.runner.MyRunner2
5、通过java命令运行java程序
复制代码 代码示例:
$JAVA_EXE -classpath $CLASSPATH $MAIN_CLASS &
然后,使用linux sh命令运行run.sh即可,实现java程序的启动脚本。