java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > Java启动jar包

Java中启动jar包的方式汇总

作者:咖啡有糖了

Java 命令执行 JAR 包是一种常见的应用场景,在实际开发中,我们经常需要执行 JAR 包文件,那么,如何使用 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包内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文