如何让无Maven/Gradle的Java项目JAR强制在JDK 8运行?
解决方案
方案1:打包JRE8到项目+启动脚本(最简单通用)
无需额外工具,直接把JRE8和项目打包,配合脚本一键启动,跨平台适配简单。
步骤:
- 准备JRE8:
- 下载对应操作系统的JRE8压缩包(推荐OpenJDK的JRE8,体积更小),解压到项目根目录,重命名为
jre8(方便统一路径)。 - 例如Windows下解压后目录结构为
项目根目录/jre8/bin/java.exe,Linux/macOS为项目根目录/jre8/bin/java。
- 下载对应操作系统的JRE8压缩包(推荐OpenJDK的JRE8,体积更小),解压到项目根目录,重命名为
- 编写启动脚本:
- Windows平台:新建
start.bat文件,内容:@echo off .\jre8\bin\java.exe -jar myJavaProject.jar pause - Linux/macOS平台:新建
start.sh文件,内容:
执行命令给脚本加权限:#!/bin/bash ./jre8/bin/java -jar myJavaProject.jarchmod +x start.sh
- Windows平台:新建
- 打包分发:把
jre8文件夹、myJavaProject.jar、启动脚本一起压缩成对应格式的包(Windows用zip,Linux/macOS用tar.gz),发给其他用户。对方解压后双击启动脚本即可,无需手动查找JDK8路径。
注意:不同操作系统的JRE8不通用,需给对应平台用户分发匹配的JRE8;若嫌JRE8体积大,可使用JDK9+的
jlink工具裁剪最小运行时,但JDK8无此功能,直接用完整JRE8更省心。
方案2:用Launch4j打包成Windows可执行文件(适合Windows用户)
如果主要面向Windows用户分发,可通过Launch4j把JRE8和Jar打包成单个exe文件,双击即可运行。
步骤:
- 下载并安装Launch4j(免费开源工具)。
- 打开Launch4j,完成配置:
- Basic标签:设置
Output file为生成的exe路径(如myProject.exe),Jar选择你的myJavaProject.jar。 - JRE标签:设置
Minimum JRE version为1.8,在Search path中填写.\jre8(前提是JRE8已放在项目根目录的jre8文件夹)。 - 其余标签保持默认即可。
- Basic标签:设置
- 点击
Build按钮生成exe文件,将exe和jre8文件夹一起打包分发,用户双击exe就会自动调用自带的JRE8运行项目。
补充说明
- 确保你的
myJavaProject.jar是包含所有依赖的可执行Jar(即fat jar),若未打包依赖,需将依赖库放在Jar同级目录,并在启动脚本中添加-cp参数指定依赖路径,例如:
(假设依赖都在.\jre8\bin\java.exe -cp "myJavaProject.jar;lib/*" com.your.MainClasslib文件夹下,com.your.MainClass是项目的主类)
内容的提问来源于stack exchange,提问作者Rikako
相关产品推荐
相关产品推荐

