通过批处理来启动java jar程序

通过批处理来启动java jar程序

版权声明:转载请注明出处。 https://blog.csdn.net/tiantang_1986/article/details/50827423

我们很多功能都可能需要做成一个程序来启动,启动方式无非就是在命令行敲上:java -jar xxx.jar [参数1,参数2] 。这样虽然比较简单,但是还是有些不方便的地方。

接下来跟大家讲讲怎么样通过写批出来脚本来实习jar程序的启动。

首先,我们需要自己的jar包及它的依赖jar包,假如放在lib目录下,配置文件conf.properties在conf目录下,然后我们的启动脚本放在bin目录下。

接下来就是编写我们的脚本,假设这个脚本取名叫 start.bat :

 

@echo off
set BASE_HOME=%cd%\..
set JAVA="Z:\base\tools\JDK\jdk7_71\bin\java.exe"
set JAVA_OPTS=-Xmx512m
set CONF="%BASE_HOME%\conf\conf.properties"

if not exist "%BASE_HOME%\lib\Application*.jar" (
@echo "配置的Application路径不正确"
@pause
exit
)
if not exist %JAVA% (
@echo "没有找到JDK,请安装JDK1.6-64位"
@pause
exit
)
if not exist %CONF% (
@echo "没有找到conf.properties"
@pause
exit
)

@echo off
if "%1" == "h" goto begin
mshta vbscript:createobject("wscript.shell").run("""%~nx0"" h",0)(window.close)&&exit
:begin

%JAVA% %JAVA_OPTS% -Dlog4j.configuration=file:///%BASE_HOME%/conf/log4j.properties -cp "%BASE_HOME%\lib\*"  -Dconfig.path=%CONF% com.mysite.kafka.KafkaConsumer


这样通过简单的一些判断来实现对环境的检测,如果环境满足,则继续运行。

 

我们的jar包使用到了log4j的配置,参数传递的方式是通过 -D,java内部获取这个参数可以通过System.getProperty("config.path") 来获取,如果不是通过 -D的方式,直接传入,像这样:-config.path=xxx ,则在代码里面获取的方式是 通过main方法的args数组参数来获取。

接着就是我们的主类了 com.mysite.kafka.KafkaConsumer 。这里需要注意的是,-D传参数应该放到主类前面,直接传则放到主类后面。

 

@echo off
if "%1" == "h" goto begin
rem mshta vbscript:createobject("wscript.shell").run("""%~nx0"" h",0)(window.close)&&exit
:begin

 

 

 

 

这一段代码是让脚本能后台运行,如果你只需要前台运行的话,则可注释掉第三句。使用 rem 注释,像这样:

 

rem mshta vbscript:createobject("wscript.shell").run("""%~nx0"" h",0)(window.close)&&exit


然后我们双击这个脚本即可启动程序,如果我们的软件包换了目录,完全不需要修改,而且这个脚本只需要稍微的修改一下即可用到别的地方,是不是很方便。

 

其实我们掌握了规律,知道一个jar程序启动需要哪些东西,也可以很快的把shell脚本写出来。

例如:

 

nohup /home/jst/jdk1.7.0_71/bin/java -Xmx512m -Dlog4j.configuration=file:/home/Application/conf/log4j.properties -Dconfig.path=../conf/conf.properties -cp "../lib/*" com.mysite.kafka.KafkaConsumer > /dev/null 2>&1 &

 

 

这里使用nohup来启动,可以让jar程序在后台启动,如果需要前台只需要简单的修改一下启动命令即可,就像这样:

 

/home/jst/jdk1.7.0_71/bin/java -Xmx512m -Dlog4j.configuration=file:/home/Application/conf/log4j.properties -Dconfig.path=../conf/conf.properties -cp "../lib/*" com.mysite.kafka.KafkaConsumer


这里的-cp 指的是-classpath 你也可以写全名,来指定jar包、依赖jar包的路径,使它们能够加载到JVM去运行。

 

好了就讲到这里。
 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值