Java中启动jar包的方式汇总
作者:咖啡有糖了
1. 标准启动(指定 -jar 参数)
java -jar your-application.jar
要求:JAR 的 MANIFEST.MF 文件中必须包含 Main-Class 属性。
特点:自动识别入口类,忽略 -classpath 参数。
2. 显式指定主类(无需 MANIFEST.MF)
java -cp your-application.jar com.example.MainClass
适用场景:
JAR 未配置 Main-Class。
需手动指定入口类(覆盖 MANIFEST.MF 中的定义)。
依赖管理:若需添加外部库,用分号(Windows)或冒号(Linux/Mac)分隔:
Windows java -cp "lib/*;your-application.jar" com.example.MainClass Linux/Mac java -cp "lib/*:your-application.jar" com.example.MainClass
3. 添加 JVM 参数
java -Xmx1024m -Dconfig.file=/path/config.conf -jar your-application.jar
常用参数:
-Xmx1024m:设置最大堆内存为 1024MB。
-Dproperty=value:设置系统属性(如配置文件路径)。
4. 后台运行(Linux/Mac)
nohup java -jar your-application.jar > app.log 2>&1 &
作用:
nohup:忽略挂断信号(退出终端后继续运行)。
app.log:重定向标准输出到文件。
2>&1:将错误输出合并到标准输出。
&:后台运行。
5. Windows 后台运行
start /B javaw -jar your-application.jar > app.log 2>&1
注意:
javaw.exe 无控制台窗口(适合 GUI 应用)。
日志需手动重定向(如 > app.log)。
6. 模块化启动(Java 9+)
java --module-path libs --module com.example/com.example.MainClass
适用场景:项目使用 Java 模块系统(module-info.java)。
7. 通过脚本封装
创建启动脚本(如 start.sh 或 start.bat):
Linux/Mac(start.sh) java -Xms256m -Xmx1024m -jar /path/to/your-application.jar
@echo off java -Xms256m -Xmx1024m -jar C:\path\to\your-application.jar
8. 使用第三方工具
jpackage (JDK 14+):打包成原生安装包(含启动器)。
Spring Boot 项目
mvn spring-boot:run # 直接运行(无需先打包)
系统服务:
Linux:通过 systemd 托管。
Windows:封装成服务(如使用 WinSW)。
常见问题解决
No main manifest attribute:JAR 缺失 Main-Class,需用方式 2 显式指定主类。
依赖冲突:确保所有依赖 JAR 在 -cp 路径中(使用 lib/* 通配符)。
权限问题(Linux):为脚本添加执行权限:
chmod +x start.sh
根据需求选择合适的方式,通常 java -jar 或 -cp 是最常用的方法。
到此这篇关于Java中启动jar包的方式汇总的文章就介绍到这了,更多相关Java启动jar包内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!