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命令打开文件
- [root@localhost test]# vi nutch.sh
2.在vi命令模式中使用 :set ff 命令
可以看到改文件的格式为dos
3.修改文件format为unix
方法一:使用vi修改文件format
命令:set ff=unix
执行完后再通过set ff命令查看文件格式,结果如下:
方法二:直接使用dos2unix命令修改
- [root@localhost test]# dos2unix nutch.sh
- dos2unix: converting file test.sh to UNIX format ...
修改完后再次执行./test.sh,执行正确:
- [root@localhost test]# ./nutch.sh
- test shell
参考资料: