.bat文件启动jar,包含jre环境

本文详细介绍如何将Java项目打包成可独立运行的文件夹,包括项目打成jar包、复制jre及创建启动文件的方法,使项目能在无Java环境的Windows中运行,同时讲解config与logs文件夹的作用。

1、项目打成jar包形式

2、将java环境中的jre文件夹复制到打包文件夹下,并根据需要新建config、logs等文件夹,如下

3、新建启动文件此处命名为startReferee.txt,添加一下内容后修改为startReferee.bat

指定运行窗口的标题:title 窗口标题名。
运行程序出错时防止程序自动退出窗口,以便查看报错内容:在指令最后一行 添加 pause;

title referee
start jre1.8.0_201/bin/java -jar referee-v1.0.jar
pause;

保存后就可以双击startReferee.bat文件来启动项目了。

******  这样就可以将这个文件夹带到没有java环境的windows环境中运行了。******

 

备注:

1、config:文件夹来存放配置文件的,直接把项目中的配置文件拿过来即可。方便修改配置信息,如数据库配置、端口号、log日志输出目录等。

config 文件夹 可有可无 :  spring boot 应用允许将配置文件放到jar包之外,规则如下:

             第一种是在jar包的同一目录下建一个config文件夹,然后把配置文件放到这个文件夹下。 优先级最高 

             第二种是直接把配置文件放到jar包的同级目录。优先级较上次之 

             第三种在classpath下建一个config文件夹,然后把配置文件放进去。优先级较上次之 

             第四种是在classpath下直接放配置文件。优先级较上次之 

2、logs:可有可无。此处用来存放日志

<think> 我们正在解决用户的问题:使用.bat启动jar指定JDK环境 根据引用[1]和[2],我们可以通过设置JAVA_HOME环境变量来指定JDK,然后在.bat文件中使用该JDK的java命令来启动jar。 引用[1]的例子展示了设置JAVA_HOME、CLASSPATH和Path,然后使用java -jar启动jar。 引用[2]提到了如果目标机器上有配置好的jre,可能需要使用全路径名来指定java命令。 引用[3]给出了一个使用相对路径指定jre的例子,并设置了窗口标题和pause命令防止窗口关闭。 因此,我们可以采用以下两种方法之一: 方法1:设置临时环境变量(类似于引用[1]) 方法2:直接使用JDK的java可执行文件的绝对路径或相对路径(类似于引用[2]和引用[3]) 我们分别给出示例: 方法1:设置临时环境变量 在.bat文件中设置JAVA_HOME(指向JDK的安装目录),然后设置PATH,这样后续的java命令就会使用这个指定的JDK。 方法2:直接使用绝对路径或相对路径调用java命令 同时,我们还可以结合引用[3]的建议,设置窗口标题和添加pause命令以便查看错误。 下面给出两种方法的示例代码: 方法1示例(设置临时环境变量): ```bat @echo off title 使用指定JDK启动程序 [方法1] :: 设置JDK路径(注意:路径中如果有空格,需要用引号括起来) set "JAVA_HOME=C:\Program Files\Java\jdk1.8.0_31" :: 设置临时PATH,将JDK的bin目录添加到PATH中 set "PATH=%JAVA_HOME%\bin;%PATH%" :: 启动jar java -jar plc-xz-0.0.1-SNAPSHOT.jar :: 如果出现错误,暂停窗口以便查看 if errorlevel 1 ( echo 程序启动失败,请检查配置! pause ) ``` 方法2示例(直接使用绝对路径): ```bat @echo off title 使用指定JDK启动程序 [方法2] :: 直接使用JDK的java可执行文件的绝对路径 "C:\Program Files\Java\jdk1.8.0_31\bin\java" -jar plc-xz-0.0.1-SNAPSHOT.jar :: 如果出现错误,暂停窗口以便查看 if errorlevel 1 ( echo 程序启动失败,请检查配置! pause ) ``` 注意:如果路径中包含空格,必须用双引号将整个路径括起来(如方法2所示)。在方法1中,我们在设置JAVA_HOME时使用了引号,这样即使路径有空格也不会出错。 另外,如果jarbat文件在同一个目录,我们可以使用相对路径来指定jar,这样更灵活。例如,如果jarbat文件在同一目录,可以直接写jar的名字。如果不在同一目录,需要写相对路径或绝对路径。 如果希望使用相对路径来指定JDK(例如,将JDK放在应用程序的目录中),那么可以这样写(类似于引用[3]): ```bat @echo off title 使用相对路径指定JDK启动 :: 假设jdk位于当前目录下的jdk1.8.0_31目录中 set "JAVA_HOME=%~dp0jdk1.8.0_31" set "PATH=%JAVA_HOME%\bin;%PATH%" java -jar "%~dp0plc-xz-0.0.1-SNAPSHOT.jar" if errorlevel 1 pause ``` 这里,`%~dp0`表示bat文件所在的目录路径。这样,整个JDK可以放在应用程序的目录中,与bat文件一起,便于部署。 总结: 根据用户的需求,我们可以通过设置临时环境变量或直接指定java路径来使用特定的JDK启动jar。建议使用相对路径的方式,这样整个程序(括JDK)可以打在一起,便于在没有安装JDK的机器上运行。 注意事项: 1. 路径中如果包含空格,一定要用双引号。 2. 建议在最后添加错误处理,以便在启动失败时查看错误信息。 如果用户需要,还可以添加JVM参数(如内存设置): ```bat java -Xmx1024m -Xms512m -jar "%~dp0plc-xz-0.0.1-SNAPSHOT.jar" ``` 现在,我们按照要求生相关问题: </think> ### 使用.bat启动JAR指定JDK环境的方法 以下是两种常用方法实现通过.bat文件启动JAR时精确指定JDK环境: --- #### 方法1:临时设置环境变量(推荐) 在.bat文件中使用`set`命令临时配置JDK路径: ```bat @echo off title 程序启动器 [指定JDK环境] :: === 配置JDK路径(修改引号内路径) === set "JAVA_HOME=C:\Program Files\Java\jdk1.8.0_201" set "PATH=%JAVA_HOME%\bin;%PATH%" :: === 启动JAR程序 === java -jar 你的程序.jar :: 错误处理(非0退出码时暂停) if errorlevel 1 ( echo 错误代码: %errorlevel% | 请检查日志 pause ) ``` **特点**: - ✅ 只对当前批处理会话生效 - ✅ 不影响系统全局环境变量 - ➕ 支持自定义JDK版本(如1.8/11/17) - 📌 路径含空格时**必须加双引号**[^1] --- #### 方法2:直接调用JDK的java.exe 使用JDK安装目录下的绝对路径启动: ```bat @echo off title 服务启动器 - 生产环境 :: 直接调用JDK的java执行文件 "C:\Program Files\Java\jdk-17.0.2\bin\java.exe" -jar 服务程序.jar :: 添加内存参数示例 :: "D:\JDK\jdk1.8.0_351\bin\java" -Xmx2048m -Xms512m -jar 大型应用.jar ``` **适用场景**: - 🚀 多版本JDK共存时精确指定 - 💻 免配置环境变量的部署环境 - 📦 便携式应用(配合相对路径使用) --- ### 关键配置说明 | 配置项 | 作用说明 | 注意事项 | |----------------|--------------------------------|----------------------------| | `set JAVA_HOME`| 临时定义JDK安装路径 | 路径需与实际安装位置一致 | | `set PATH` | 将JDK的bin目录加入可执行路径 | 必须放在原PATH前 | | **双引号** | 处理含空格的路径 | `"C:\Program Files\..."` | | `%~dp0` | 获取bat文件所在目录 | 用于构建相对路径:`"%~dp0jdk\bin\java"` | | `if errorlevel`| 捕获程序异常退出 | 非0退出码表示错误 | > **路径处理技巧**: > 使用`%~dp0`获取当前bat目录: > `"%~dp0jdk1.8.0_301\bin\java" -jar app.jar` > 此方式使JDK可与程序一起打📦[^2] --- ### 验证方法 在bat文件末尾添加验证命令: ```bat :: === 验证JDK版本 === java -version echo 使用的JAVA_HOME: %JAVA_HOME% pause ``` 运行后将显示实际调用的Java版本和路径。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值