使用maven创建的普通java项目,打包jar后运行,no main manifest attribute, in XXX.jar
·
使用maven创建的普通java项目,打包jar后运行,no main manifest attribute, in XXX.jar
问题复现
- 使用
IntelliJ IDEA创建了普通的maven项目 - 编写hello world
package com.test; public class Main { public static void main(String[] args) { System.out.println("Hello world!"); } } - 运行
报错:no main manifest attribute, in xxxxx.jar
原因
根据规范,一般情况下, jar 包里面要有个 MANIFEST.MF文件
文件要中指定 Main-Class项
运行jar文件的时候才能找到主类
解决
- 方法一: 手动补充配置(不推荐)
- 方法二: 直接使用maven提供的
maven-jar-plugin插件
插件配置在pom中即可<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.test</groupId> <artifactId>xxxxxx</artifactId> <version>1.0-SNAPSHOT</version> <properties> <maven.compiler.source>17</maven.compiler.source> <maven.compiler.target>17</maven.compiler.target> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <build> <plugins> <!-- 这里添加插件 --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>3.4.1</version> <configuration> <archive> <manifest> <addClasspath>true</addClasspath> <!-- 你的主类的实际路径 --> <mainClass>com.test.Main</mainClass> </manifest> </archive> </configuration> </plugin> </plugins> </build> </project>
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)