shell 脚本启动jar程序
2016-05-12 22:11
746 查看
Linux下启动jar包程序,直接上步骤:
1、首先,maven项目打成一个jar包,同时使用dependency:copy-dependencies命令导出依赖的jar包,把导出的包和项目jar包都放进lib文件夹里
2、编写shell脚本:
可在启动的程序类main方法中加入以下代码:
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代码
![](https://oscdn.geek-share.com/Uploads/Images/Content/201710/fe33c3009b7b8306f07b0384ceef7219.png)
[root@localhost test]# vi nutch.sh
2.在vi命令模式中使用 :set ff 命令
![](https://oscdn.geek-share.com/Uploads/Images/Content/201706/214d9b03982603a378722c4002c9780e.jpg)
可以看到改文件的格式为dos
![](https://oscdn.geek-share.com/Uploads/Images/Content/201706/8a7d24f687a875cad519d9076d874962.jpg)
3.修改文件format为unix
方法一:使用vi修改文件format
命令:set ff=unix
![](https://oscdn.geek-share.com/Uploads/Images/Content/201706/60d7885d5188ace7574556c9ab457573.jpg)
执行完后再通过set ff命令查看文件格式,结果如下:
![](https://oscdn.geek-share.com/Uploads/Images/Content/201706/d1b1560b23db9ab829128f9c71bcafcd.jpg)
方法二:直接使用dos2unix命令修改
Shell代码
![](https://oscdn.geek-share.com/Uploads/Images/Content/201710/fe33c3009b7b8306f07b0384ceef7219.png)
[root@localhost test]# dos2unix nutch.sh
dos2unix: converting file test.sh to UNIX format ...
修改完后再次执行./test.sh,执行正确:
Shell代码
![](https://oscdn.geek-share.com/Uploads/Images/Content/201710/fe33c3009b7b8306f07b0384ceef7219.png)
[root@localhost test]# ./nutch.sh
test shell
参考资料:
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代码
![](https://oscdn.geek-share.com/Uploads/Images/Content/201710/fe33c3009b7b8306f07b0384ceef7219.png)
[root@localhost test]# vi nutch.sh
2.在vi命令模式中使用 :set ff 命令
![](https://oscdn.geek-share.com/Uploads/Images/Content/201706/214d9b03982603a378722c4002c9780e.jpg)
可以看到改文件的格式为dos
![](https://oscdn.geek-share.com/Uploads/Images/Content/201706/8a7d24f687a875cad519d9076d874962.jpg)
3.修改文件format为unix
方法一:使用vi修改文件format
命令:set ff=unix
![](https://oscdn.geek-share.com/Uploads/Images/Content/201706/60d7885d5188ace7574556c9ab457573.jpg)
执行完后再通过set ff命令查看文件格式,结果如下:
![](https://oscdn.geek-share.com/Uploads/Images/Content/201706/d1b1560b23db9ab829128f9c71bcafcd.jpg)
方法二:直接使用dos2unix命令修改
Shell代码
![](https://oscdn.geek-share.com/Uploads/Images/Content/201710/fe33c3009b7b8306f07b0384ceef7219.png)
[root@localhost test]# dos2unix nutch.sh
dos2unix: converting file test.sh to UNIX format ...
修改完后再次执行./test.sh,执行正确:
Shell代码
![](https://oscdn.geek-share.com/Uploads/Images/Content/201710/fe33c3009b7b8306f07b0384ceef7219.png)
[root@localhost test]# ./nutch.sh
test shell
参考资料:
什么时候使用CountDownLatch http://www.importnew.com/15731.html
相关文章推荐
- centos6.5系统bash损坏之救援模式修复
- centos6.5系统bash损坏之救援模式修复
- 15分钟熟悉HBase Shell命令
- Shell编程练习
- tensorflow之使用shell脚本定义自己的图片标签
- spark-shell出错_解决方法
- shell浅谈之六字符串和文件处理
- 【转】【Android测试技巧】01. root后adb shell默认不是root用户时,如何将文件放入手机系统中
- python 调用shell 命令 方式
- shell浅谈之五文本处理工具Vim
- shell-1.shell注释
- 使用expect实现shell自动交互
- java 过滤掉特殊字符以及sql、shell命令
- nohup-真正的Shell后台运行
- Spark Shell & Spark submit
- 写shell脚本速查笔记
- Shell编程实现随机函数
- 第 13 章 学习shell script
- adb shell
- adb shell