Fehler in Putty (kein Hauptmanifestattribut, in jar)

GermanPie

Mitglied
Hallo ich habe beim Ausführern mein jar das Problem mit Folgenden Code:

kein Hauptmanifestattribut, in SimpleReactRoles.jar

und in meiner MANIFEST.MF datei steht:
Manifest-Version: 1.0
Main-Class: DiscordMain

Ich Programmiere in Intelji und habe ein Maven Projekt.

Vielen Dank im Voraus wenn mir jemand Helfen könnte!
 
Ist denn in der Jar Datei genau diese MANIFEST.MF drin? Oder wo hast Du bezüglich dieser Datei nach dem Inhalt gesehen?

Wie hast Du das jar File gebaut und wie sieht dein pom.xml aus?
 
Ich habe die Manifest datei wie folgt eingebaut: Ich bin auf Project Structure dann Artifacts und habe eine jar hinzugefügt und auch direkt die Main Class ausgewählt.

In meiner pom steht folgendes drin:

<?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>DiscordMain</groupId>
<artifactId>DiscordMain</artifactId>
<version>1.0-SNAPSHOT</version>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>8</source>
<target>8</target>
</configuration>
</plugin>
</plugins>
</build>


<repositories>
<repository>
<id>jcenter</id>
<name>jcenter-bintray</name>
<url>https://jcenter.bintray.com</url>
</repository>
</repositories>

<dependencies>
<dependency>
<groupId>net.dv8tion</groupId>
<artifactId>JDA</artifactId>
<version>4.2.0_222</version>
</dependency>
<dependency>
<groupId>com.sedmelluq</groupId>
<artifactId>lavaplayer</artifactId>
<version>1.3.60</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.xerial/sqlite-jdbc -->
<dependency>
<groupId>org.xerial</groupId>
<artifactId>sqlite-jdbc</artifactId>
<version>3.32.3.2</version>
</dependency>
</dependencies>

</project>
 
Ist denn in der Jar Datei genau diese MANIFEST.MF drin? Oder wo hast Du bezüglich dieser Datei nach dem Inhalt gesehen?

Wie hast Du das jar File gebaut und wie sieht dein pom.xml aus?
Ich habe die Manifest datei wie folgt eingebaut: Ich bin auf Project Structure dann Artifacts und habe eine jar hinzugefügt und auch direkt die Main Class ausgewählt.

In meiner pom steht folgendes drin:

<?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>DiscordMain</groupId>
<artifactId>DiscordMain</artifactId>
<version>1.0-SNAPSHOT</version>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>8</source>
<target>8</target>
</configuration>
</plugin>
</plugins>
</build>


<repositories>
<repository>
<id>jcenter</id>
<name>jcenter-bintray</name>
<url>https://jcenter.bintray.com</url>
</repository>
</repositories>

<dependencies>
<dependency>
<groupId>net.dv8tion</groupId>
<artifactId>JDA</artifactId>
<version>4.2.0_222</version>
</dependency>
<dependency>
<groupId>com.sedmelluq</groupId>
<artifactId>lavaplayer</artifactId>
<version>1.3.60</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.xerial/sqlite-jdbc -->
<dependency>
<groupId>org.xerial</groupId>
<artifactId>sqlite-jdbc</artifactId>
<version>3.32.3.2</version>
</dependency>
</dependencies>

</project>
 
Also baust Du die jar Datei über IntelliJ und nicht üver Maven? Wenn Du doch schon Maven für das Projekt hast, dann solltest Du es auch für das Bauen der Jar Datei nutzen.

Dazu könntest Du bei den Plugins noch das entsprechende Plugin mit angeben:
XML:
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <configuration>
                    <archive>
                        <manifest>
                            <mainClass>com.maventest.App</mainClass>
                        </manifest>
                    </archive>
                </configuration>
            </plugin>

Dabei natürlich die mainClass anpassen.

Das Problem, welches ich jetzt halt sehe: ein maven package wird ein jar bauen. IntelliJ baut ggf. auch noch ein jar file. Jetzt kann es durchaus sein, dass Du das falsche jar File erwischt hast - als eine Option. Denn das Jar File, das Du versucht hast zu starten, wird kein entsprechendes manifest gehabt haben.

Man könnte auch die IntelliJ Settings jetzt gemeinsam prüfen um sicher zu gehen, dass bei einem Build auch das jar gebaut wird und so, aber ich sehe da nicht wirklich einen Sinn drin, denn Du hast ja Maven. Also warum nicht Maven dafür nutzen?
 

Zurück
Oben