当前位置: 首页 > 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.xdnf.cn/news/1269181.html

相关文章:

  • cross-env dotenv
  • 版本控制的详细说明介绍(已有github账号版)
  • pytorch+tensorboard+可视化CNN
  • 动手学深度学习(pytorch版):第二章节——预备知识(1)——数据操作
  • 数模个人笔记
  • USRP X310 X410 参数对比
  • ImageJ 实用技巧:通过 Overlay 实现图像透明标记的完整教程
  • 【Git】Visual Studio 实现合并分支
  • 2025年TOP5服装类跟单软件推荐榜单
  • MoVA:多模态视觉专家混合架构的创新设计与应用实践
  • Ubuntu22.04 安装vitis2023.2 卡在“Generating installed device list“.
  • 从反射到方法句柄:深入探索Java动态编程的终极解决方案
  • 机器翻译正则化技术详解:防止过拟合的有效方法
  • Go语言实战案例:文件上传服务
  • 分析报告:基于字节连续匹配技术的KV缓存共享实施可能性及其扩展
  • Leetcode——556. 下一个更大元素 III
  • Kotlin反射详解
  • Docker大全
  • Linux之shell脚本篇(四)
  • 简单聊聊PowerShell
  • 使用 Prometheus+cAdvisor 监控 Docker 容器指标
  • 算法_python_学习记录_01
  • Docker多阶段构建及适用镜像推荐
  • 软件工程总体设计:从抽象到具体的系统构建之道
  • WinForm 复合控件(用户控件):创建与使用指南
  • 10. 怎么实现深拷贝?
  • 【n8n】学习n8n【10】:Github的项目n8n-workflows:本地安装2,053 个 n8n 工作流程集合:随时看随时抄/学习~
  • 嵌入式 - Linux软件编程
  • 基于 RAUC 的 Jetson OTA 升级全攻略
  • 【文献阅读】我国生态问题鉴定与国土空间生态保护修复方向