no main manifest attribute
时间:2020-02-23 14:34:36 来源:igfitidea点击:
在本教程中,我们将看到如何解决无法执行JARFILE:"no main manifest attribute"。
问题
当我们有一个自我执行的jar并尝试执行它时。
我们可能会收到此错误。
Unable to execute jar- file: “no main manifest attribute"
无法执行jar-文件:"没有主列表属性"
解决方案
Maven.
我们可能会在此时出现此错误 Main-Class
Manifest.mf文件中缺少条目。
你可以放置 maven-jar-plugin
插件 pom.xml
要解决这个问题。
<build> <plugins> <plugin> <!-- Build an executable JAR --> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>3.1.0</version> <configuration> <archive> <manifest> <mainClass>org.igi.theitroad.AppMain</mainClass> </manifest> </archive> </configuration> </plugin> </plugins> </build>
org.igi.theitroad.AppMain
是主要类的完全合格的名称。
我们需要用申请的主类替换它。
运行步 mvn clean install
然后执行如下所示的JAR文件。
java -jar AppMain-0.0.1-SNAPSHOT.jar
AppMain-0.0.1-SNAPSHOT.jar
是我们想要运行的应用程序jar。
Spring启动应用程序
如果运行Spring Boot应用程序的同时,我们就会出现错误,我们可以使用
spring-boot-maven-plugin
。
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>2.0.1.RELEASE</version> </plugin> </plugins> </build>
译
如果我们使用Gradle,可以通过以下条目来解决此问题。
plugins { id 'java' } jar { manifest { attributes( 'Main-Class': 'org.igi.theitroad.AppMain' ) } }
请替换 org.igi.theitroad.AppMain
用你的主班。
根本原因
当你运行自我执行的jar时,java会寻找 Main-Class
在ManiceSt.mf文件中位于Meta-Inf文件夹下。
如果它无法找到一个条目,那么它会抱怨 Unable to execute jar- file: “no main manifest attribute”
。
MANIFEST.MF contains information about files contained in the Jar file.
Manifest-Version: 1.0 Built-By: igi Mandliya Build-Jdk: 1.8.0_101 Created-By: Maven Integration for Eclipse
一旦我们运行上述解决方案并重新打开 MANIFEST.MF
jar中的文件,我们将看到主类条目。
Manifest-Version: 1.0 Built-By: igi Mandliya Build-Jdk: 1.8.0_101 Created-By: Maven Integration for Eclipse Main-Class: org.igi.theitroad.AppMain