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

简介: 我们很多功能都可能需要做成一个程序来启动,启动方式无非就是在命令行敲上:java -jar xxx.jar [参数1,参数2] 。这样虽然比较简单,但是还是有些不方便的地方。接下来跟大家讲讲怎么样通过写批出来脚本来实习jar程序的启动。


我们很多功能都可能需要做成一个程序来启动,启动方式无非就是在命令行敲上: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去运行。

好了就讲到这里。

相关文章
|
5月前
|
Java Linux
java的jar后台启动
java的jar后台启动
106 14
|
7月前
|
Java C语言
课时8:Java程序基本概念(标识符与关键字)
课时8介绍Java程序中的标识符与关键字。标识符由字母、数字、下划线和美元符号组成,不能以数字开头且不能使用Java保留字。建议使用有意义的命名,如student_name、age。关键字是特殊标记,如蓝色字体所示。未使用的关键字有goto、const;特殊单词null、true、false不算关键字。JDK1.4后新增assert,JDK1.5后新增enum。
110 4
|
7月前
|
Java 编译器
课时7:Java程序基本概念(注释)
课时7介绍了Java程序中的注释。编程语言有其语法和语义,注释有助于理解代码需求,防止断档。Java支持三类注释:单行(//)、多行(/* */)和文档注释(/** */)。注释不会被编译器编译。范例中展示了如何在代码中使用注释,并强调了注释对项目文档管理的重要性。
111 3
|
8月前
|
前端开发 JavaScript Java
Java打包jar运行时分离lib和jar
在`pom.xml`的`build`节点中,设置`packaging`为`jar`,并配置插件分离依赖库到`lib`目录和资源文件到`resources`目录。这样可以在运行时通过`-Dloader.path=lib,resources`加载外部依赖和资源文件,便于独立升级依赖库和修改资源文件,而无需重新打包程序。具体插件包括`maven-dependency-plugin`、`maven-resources-plugin`和`spring-boot-maven-plugin`等。
364 1
|
10月前
|
Java Maven
java项目中jar启动执行日志报错:no main manifest attribute, in /www/wwwroot/snow-server/z-server.jar-jar打包的大小明显小于正常大小如何解决
在Java项目中,启动jar包时遇到“no main manifest attribute”错误,且打包大小明显偏小。常见原因包括:1) Maven配置中跳过主程序打包;2) 缺少Manifest文件或Main-Class属性。解决方案如下:
2318 8
java项目中jar启动执行日志报错:no main manifest attribute, in /www/wwwroot/snow-server/z-server.jar-jar打包的大小明显小于正常大小如何解决
|
7月前
|
存储 Java 数据库连接
【YashanDB知识库】Java程序调用存储过程,在提取clob时报YAS-00004
【YashanDB知识库】Java程序调用存储过程,在提取clob时报YAS-00004
|
7月前
|
搜索推荐 Java Android开发
课时146:使用JDT开发Java程序
在 Eclipse 之中提供有 JDT环境可以实现java 程序的开发,下面就通过一些功能进行演示。 项目开发流程
256 0
|
9月前
|
传感器 安全 算法
消防救援支队消防员单兵装备智能养护舱电机驱动java版程序(二)
本文探讨消防救援中智能养护舱电机驱动的Java程序设计,作为系列文章第二部分。通过自动化和智能化手段,智能养护舱提升了装备维护效率与准确性。文章详细介绍了电机驱动模块的设计与实现,包括硬件选型、PID控制策略、安全保护机制及Java程序架构,确保电机精确控制、稳定性和安全性。未来将优化功能并引入智能算法和物联网技术,进一步提升装备维护智能化水平。
|
9月前
|
IDE Java 开发工具
消防救援支队消防员单兵装备智能养护舱点击驱动java版程序(一)
智能消防作战服架通过电机驱动系统提升消防员作业效率和安全性。本文介绍基于Java的电机驱动程序开发,涵盖硬件准备、软件环境搭建及驱动程序实现。重点包括串口通信配置、电机控制类设计与控制逻辑实现,确保电机高效稳定运行。通过正确配置通信协议和串口参数,并添加异常处理机制,保障系统的安全性和可靠性。
|
7月前
|
Java 开发工具
课时5:第一个Java程序
课时5介绍了编写第一个Java程序的步骤,包括创建Hello.java文件、编写“Hello World”代码、编译和运行程序。主要内容有:1) 新建并编辑Hello.java;2) 编译Java源文件生成.class文件;3) 通过命令行解释执行Java程序;4) 解释主方法的作用及信息输出操作。本课强调了类定义、文件命名规则和基本程序结构的重要性,并建议初学者使用记事本编写代码以熟悉基础语法。
109 0

热门文章

最新文章