shell 脚本启动jar程序

Linux下启动jar包程序,直接上步骤:

1、首先,maven项目打成一个jar包,同时使用dependency:copy-dependencies命令导出依赖的jar包,把导出的包和项目jar包都放进lib文件夹里

2、编写shell脚本:

#!/bin/bash
export JAVA_HOME=/home/program/java/jdk1.8.0_60              ###jdk安装路径
java=$JAVA_HOME/bin/java

JAVA_OPTS=$JAVA_OPTS:"-Xms1024m -Xmx1024m"
export JAVA_OPTS
SERVER_HOME=/opt/nutch                     ###放置lib文件夹和shell的目录
LIBDIR=$SERVER_HOME/lib

CONFDIR=$SERVER_HOME/conf                  ###可去掉,放置配置文件
export CONFDIR

export LIBDIR
CLASSPATH=${CLASSPATH}:${LIBDIR}
CLASSPATH=${CLASSPATH}:${CONFDIR}:${LIBDIR}


for cdir in ${LIBDIR}/*.jar
do
 CLASSPATH=$CLASSPATH:$cdir
 export CLASSPATH
done
export CLASSPATH
exec $java com.yaochufa.jframework.nutch.AppStarter $* >logs/stdout.log 2>&1 &                   ###指定启动的程序类

#tail -f /home/yang/program/file/stock_task/logs/stdout.log

可在启动的程序类main方法中加入以下代码:

CountDownLatch latch =new CountDownLatch(1);
latch.await();

3、linux进入目录,赋予shell脚本可执行的权限,执行shell

这时会出现一个错误:-bash: ./nutch.sh: /bin/bash^M: bad interpreter: No such file or directory

主要原因是nutch.sh是我在windows下编辑然后上传到linux系统里执行的。.sh文件的格式为dos格式。而linux只能执行格式为unix格式的脚本。

我们可以通过vi编辑器来查看文件的format格式。步骤如下:

1.首先用vi命令打开文件

Shell代码   收藏代码
  1. [root@localhost test]# vi nutch.sh   

2.在vi命令模式中使用 :set ff 命令

可以看到改文件的格式为dos

3.修改文件format为unix

方法一:使用vi修改文件format

命令:set ff=unix

执行完后再通过set ff命令查看文件格式,结果如下:

方法二:直接使用dos2unix命令修改

Shell代码   收藏代码
  1. [root@localhost test]# dos2unix nutch.sh   
  2. dos2unix: converting file test.sh to UNIX format ...  

 修改完后再次执行./test.sh,执行正确:

Shell代码   收藏代码
  1. [root@localhost test]# ./nutch.sh   
  2. test shell   


参考资料:

什么时候使用CountDownLatch  http://www.importnew.com/15731.html

猜你喜欢

转载自blog.csdn.net/kevinxxw/article/details/51387935