当前位置: 首页 > news >正文

java -jar xxx.jar 提示xxx.jar中没有主清单属性报错解决方案

xxx.jar 中没有主清单属性 (no main manifest attribute)解决方案

java -jar xxx.jar 提示xxx.jar中没有主清单属性报错解决方案

这个错通常出现在你用 java -jar xxx.jar 启动,但 JAR 的 META-INF/MANIFEST.MF 里没有 Main-Class 条目(或没按可执行 JAR 的方式打包)。快速检查 + 常见解决方案如下:


用构建工具打出可执行 JAR

如果你用 MavenGradle,推荐在构建阶段就写好 Main-Class 并(如果需要)生成 fat/uber-jar。

Maven (maven-jar-plugin):

<build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><version>${spring-boot.version}</version><configuration><mainClass>com.qwen.QwenChatApplication</mainClass><excludes><exclude><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></exclude></excludes></configuration><executions><execution><goals><goal>repackage</goal></goals></execution></executions></plugin></plugins></build>

生成包含依赖的可执行 jar 用 maven-shade-pluginspring-boot-maven-plugin(Spring Boot 项目)。

image-20250809231836913

Gradle(普通 jar):

jar {manifest {attributes 'Main-Class': 'com.example.Main'}
}

如果要包含依赖(fat jar),用 shadow 插件或 application 插件的打包方式。


常见坑 & 提示

  • Main-Class 值必须是完全限定类名(包含包名),且该类要有 public static void main(String[] args)
  • MANIFEST.MF 文件末尾必须以换行结尾,否则属性可能不会生效。
  • 如果这个 jar 只是一个 library(不是可执行),它本来就可能没有 Main-Class,这时应通过 -cp 指定主类或使用项目提供的启动脚本。
  • Spring Boot、jar-with-dependencies、shade 等工具会改变启动方式(Spring Boot 会用自己的启动器),请按对应工具文档打包。

修复完以后,再次运行就可以看到正常的启动信息输出了。

image-20250809231400632

http://www.dtcms.com/a/322861.html

相关文章:

  • PAT 1052 Linked List Sorting
  • 第16届蓝桥杯Scratch选拔赛初级及中级(STEMA)2024年10月20日真题
  • 求和算法的向后稳定性 backward stable
  • 【Python 高频 API 速学 ③】
  • 优化器:SGD、Adam、RMSprop等优化算法对比与机器翻译应用
  • 99-基于Python的京东手机数据分析及预测系统
  • I2CHAL库接口
  • c++ opencv调用yolo onnx文件
  • 用天气预测理解分类算法-从出门看天气到逻辑回归
  • SymPy 表达式的变量获取:深入理解与正确实践
  • 对数运算法则(rule of logarithmic operations)和对应导数关系
  • 带冷端补偿的热电偶采集方案MAX31855
  • Python(6) -- 数据容器
  • 《原型链的柔性骨架:JavaScript面向对象架 构的动态设计与演化逻辑》
  • 【线性代数】线性方程组与矩阵——(1)线性方程组与矩阵初步
  • Python中的Lambda函数详解
  • 北京JAVA基础面试30天打卡05
  • PowerShell 实战:第 6 章动手实验全攻略(含命令详解与示例)
  • Ubuntu和Windows系统Kafka配置方法
  • 模式组合应用-适配器模式
  • 光伏面板损伤检出率↑91%!陌讯多模态识别算法在无人机巡检的落地实践
  • 基于clodop和Chrome原生打印的标签实现方法与性能对比
  • 深入理解Maven BOM
  • 基于MATLAB的Halo轨道设计与可视化实现
  • [SC]SystemC 常见的编译/语法错误与解法(三)
  • PDF 转 HTML API 数据接口
  • 在Spring Boot项目中如何动态切换数据源、数据库?
  • Redis分布式锁详解:原理、实现与实战案例
  • 【C++11新特性】智能指针,右值引用,移动语义与完美转发,函数对象...
  • Linux运维新手的修炼手扎之第27天