java程序的jar包怎么利用shell脚本运行

  介绍

这篇文章将为大家详细讲解有关java程序的jar包怎么利用shell脚本运行,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

在UBuntu上部署项目的时候,我们往往通过一段壳来启动程序,甚至是通过crontab定时任务来定时的调用java程序,但是很奇怪的一个问题就是,比如我写了一个如下的shell脚本:

# !/bin/sh   出口mypath=/根/项目/wishnomal      java -Xmx3000m -Xms3000m - server -d64 -Dfile。utf - 8编码=-Dfetch。线程=300类路径mypath/: $ mypath/wish3-assembly-1.0.0。jar newstandard。CrawlerNewStandard $ *      回声“以何种

手动命令行运行该脚本的时候,可以正常运行java程序,但是使用crontab定时任务,貌似就不起效果了

分析可能原因:

, 1)是否当前用户对此shell脚本没有可执行权限,通过ls轻轨车/应用程序/服务/mtk/检查/run.sh查看脚本是有可执行,但是有执行权限呀-rwxr-xr-x

, 2)既然单独运行脚本没问题,那会不会是定时的问题呢?于是写了一个简单的输出的shell脚本通过定时也是没问题的。说明还是脚本的问题。

后来上网查了下,想到可能是脚本中环境变量的原因,因为通过crontab运行脚本,是以根用户,而不是当前用户,于是猫/etc/profile查看环境变量,然后修改脚本如下:

分析可能原因:

, 1)是否当前用户对此shell脚本没有可执行权限,通过ls轻轨车/应用程序/服务/mtk/检查/run.sh查看脚本是有可执行,但是有执行权限呀-rwxr-xr-x

, 2)既然单独运行脚本没问题,那会不会是定时的问题呢?于是写了一个简单的输出的shell脚本通过定时也是没问题的。说明还是脚本的问题。

后来上网查了下,想到可能是脚本中环境变量的原因,因为通过crontab运行脚本,是以根用户,而不是当前用户,于是猫/etc/profile查看环境变量,然后修改脚本如下:

# !/bin/sh   出口mypath=/根/项目/wishnomal   出口JAVA_HOME=/根/lib/jdk1.7.0_72=$ PATH: $ JAVA_HOME/bin      java -Xmx3000m -Xms3000m - server -d64 -Dfile。utf - 8编码=-Dfetch。线程=300类路径mypath/: $ mypath/wish3-assembly-1.0.0。jar newstandard。CrawlerNewStandard $ *      回声“以何种

出口显示导出为用户环境变量的环境变量

这样crontab计划任务就正常了只

修改参考:

# !/bin/sh   # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -   #启动脚本CMGP BOSSCONTROL   #   # $ Id: run_bosscontrol。sh, v 1.0美元2007/11/06 Exp   # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -   #指定字符集   LANG=zh_CN。GBK出口朗   RUN_HOME=?   CLASSPATH=$类路径:$ RUN_HOME/lib/checking.jar   CLASSPATH=$类路径:$ RUN_HOME/lib/ojdbc14.jar   CLASSPATH=$类路径:$ RUN_HOME/lib/commons-dbutils-1.1.jar   CLASSPATH=$类路径:$ RUN_HOME/lib/log4j-1.2.14.jar   CLASSPATH=$类路径:$ RUN_HOME/lib/dom4j-1.6.jar      出口类路径      java com。* *支票。Checking_Start祝辞祝辞日志。出,      

手动命令行运行该脚本的时候,可以正常运行java程序,但是使用crontab定时任务,貌似就不起效果了,很是郁闷哪,查原因哪,分析可能原因:

, 1)是否当前用户对此shell脚本没有可执行权限,通过ls轻轨车/应用程序/服务/mtk/检查/run.sh查看脚本是有可执行,但是有执行权限呀-rwxr-xr-x

, 2)既然单独运行脚本没问题,那会不会是定时的问题呢?于是写了一个简单的输出的shell脚本通过定时也是没问题的。说明还是脚本的问题。

后来上网查了下,想到可能是脚本中环境变量的原因,因为通过crontab运行脚本,是以根用户,而不是当前用户,于是猫/etc/profile查看环境变量,然后修改脚本如下:

# !/bin/sh   # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -   #启动脚本CMGP BOSSCONTROL   #   # $ Id: run_bosscontrol。sh, v 1.0美元2007/11/06 Exp   # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -   导出路径=/应用程序/usr/java/jdk1.5/bin:美元的道路   出口JAVA_HOME=/应用程序/usr/java/jdk1.5   出口JRE_HOME=/应用程序/usr/java/jdk1.5/jre   出口CLASSPATH=/应用程序/usr/java/jdk1.5/lib:/应用程序/usr/java/jdk1.5/jre/lib:美元的类路径中   RUN_HOME=/应用程序/服务/检查   CLASSPATH=类路径RUN_HOME美元/lib/checking.jar   CLASSPATH=$类路径:$ RUN_HOME/lib/ojdbc14.jar   CLASSPATH=$类路径:$ RUN_HOME/lib/commons-dbutils-1.1.jar   CLASSPATH=$类路径:$ RUN_HOME/lib/log4j-1.2.14.jar   CLASSPATH=$类路径:$ RUN_HOME/lib/dom4j-1.6.jar      出口CLASSPATH=$类路径中      java com。* *支票。Checking_Start祝辞祝辞日志。出,      

java程序的jar包怎么利用shell脚本运行