错误:“Elevator.jar 中没有主要清单属性”
Posted
技术标签:
【中文标题】错误:“Elevator.jar 中没有主要清单属性”【英文标题】:Error: "no main manifest attribute, in Elevator.jar" 【发布时间】:2021-08-16 02:25:52 【问题描述】:我正在开发一个私人 Discord 机器人,我在其中使用 json 文件来存储值。我的机器人在 IntelliJ 中完美运行。我使用 Artifact 功能创建了一个 .jar 文件,但是当我尝试运行它时,出现错误:no main manifest attribute, in Elevator.jar
。我使用 Git bash 使用命令 java -jar Elevator.jar
运行它。我使用 maven、一个 json 库和一个 JDA 库(用于 Discord 集成)。
我的 pom.xml 文件是否错误,或者我不能将 json 文件用于 .jar?如果是这样,我如何在不运行 intellij 的情况下执行我的代码?如果我需要添加更多代码或提供更多信息,请询问。
注意事项:
包裹是sebastiaan.Elevator 我使用了文件 -> 项目结构 -> 工件 -> 添加 -> JAR -> 来自具有依赖关系的模块,选择了正确的主类并按下确定。然后我点击 Build -> Build Artifact -> Build 创建文件picture of my jar file (using winrar)
picture of my jar file META-INF folder
我的 MANIFEST.MF:
Manifest-Version: 1.0
Main-Class: sebastiaan.Elevator.Main
我的 pom.xml:
<?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>groupId</groupId>
<artifactId>Elevator</artifactId>
<version>1.0-SNAPSHOT</version>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>com.googlecode.json-simple</groupId>
<artifactId>json-simple</artifactId>
<version>1.1.1</version>
</dependency>
</dependencies>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
</project>
【问题讨论】:
你把清单文件放在哪里了?您是否检查过它是否已打包到 jar 文件中,例如通过使用 zip 文件查看器查看它? 见maven-compiler-plugin
首先有source
和target
8
,然后是5
。可能是它的一个问题。
@Thomas 当我查看 META-INF/MANIFEST.MF 时,我得到:``` Manifest-Version: 1.0 Archiver-Version: Plexus Archiver Created-By: Apache Maven Built-By: Benjamin Build-Jdk: 1.4.2_19 ``` 我不知道该怎么做,如果这正确与否(我不是 Benjamin)
@AnsarOzden 我尝试删除 5 但它破坏了我的程序(奇怪的错误)
见maven.apache.org/plugins/maven-compiler-plugin/examples/…尝试1.8而不是8
【参考方案1】:
你需要在 pom.xml 中添加一个主类清单
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
...
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<mainClass>fully.qualified.MainClass</mainClass>
</manifest>
</archive>
</configuration>
...
</plugin>
</plugins>
</build>
查看更多示例here
【讨论】:
以上是关于错误:“Elevator.jar 中没有主要清单属性”的主要内容,如果未能解决你的问题,请参考以下文章