Problem: no main manifest attribute

Splayfer

Mitglied
Hallo zusammen,

ich habe vor ca. 2 Monaten mit den Programmierarbeiten in Intellij für meinen eigenen Discord JDA Bot begonnen.
Bisher habe ich meinen Bot jedoch nur lokal auf meinem Rechner innerhalb der Intellij Umgebung getestet.

Gestern abend wollte ich dann die fertig .jar Datei auf meinen root Server verschieben musste dann jedoch feststellen, dass sich die Datei nicht ausführen lässt.
Daraufhin habe ich die Datei selbst in meiner cmd noch einmal gestartet, woraufhin mir der Fehler "no main manifest attribute" im Konsolen Fenster ausgegeben wurde.

Ich habe jetzt ehrlich gesagt keine Ahnung, wie ich dieses Problem beheben könnte.
Ich habe zwar bereits gelesen, dass dies mit der File -> Project Structure -> Project Settings -> Artifacts Funktion in Intellij zusammenhängt aber genaueres konnte ich dazu noch nicht finden.

Ich hoffe, dass mir jemand bei dieser Sache weiterhelfen kann und ich freue mich schon im Voraus auf eine Rückantwort 🙂

Gruß Simon

PS: Im Anhang unten habe ich meinen Projektaufbau nochmal hochgeladen falls das weiterhelfen sollte, die Main Klasse befindet sich im package "main"!
 

Anhänge

  • booster_wand.png
    booster_wand.png
    28,9 KB · Aufrufe: 4
Gut, dass du Maven nutzt - dann zeig uns doch erst einmal deine pom.xml Datei. Vermutlich setzt du da schlicht nicht, welche main Klasse genutzt werden soll.

Je nach bereits verwendeten Plugins kann es etwas unterschiedlich gesetzt werden.
 
Gut, dass du Maven nutzt - dann zeig uns doch erst einmal deine pom.xml Datei. Vermutlich setzt du da schlicht nicht, welche main Klasse genutzt werden soll.

Je nach bereits verwendeten Plugins kann es etwas unterschiedlich gesetzt werden.
Okay danke erstmal für die schnelle Antwort! Das hier wäre meine pom.xml:
Java:
<?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>org.example</groupId>
    <artifactId>Roonie</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
    </properties>

    <repositories>
        <repository>
            <id>jcenter</id>
            <name>jcenter-bintray</name>
            <url>https://jcenter.bintray.com</url>
        </repository>
        <repository>
            <id>dv8tion</id>
            <name>m2-dv8tion</name>
            <url>https://m2.dv8tion.net/releases</url>
        </repository>
    </repositories>
    <dependencies>
        <dependency>
            <groupId>net.dv8tion</groupId>
            <artifactId>JDA</artifactId>
            <version>4.3.0_293</version>
            <exclusions>
                <exclusion>
                    <groupId>club.minnced</groupId>
                    <artifactId>opus-java</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>com.jagrosh</groupId>
            <artifactId>jda-utilities</artifactId>
            <version>3.0.5</version>
            <scope>compile</scope>
            <type>pom</type>
        </dependency>
    </dependencies>
</project>

Was genau muss ich da jetzt ändern?
 
Da könntest Du das Mavan jar plugin einbinden. Das wäre dann z.B. hinter dem </dependencies> noch ein:
Java:
<build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
        <version>3.2.0</version>
        <configuration>
          <archive>
            <manifest>
              <addClasspath>true</addClasspath>
              <mainClass>fully.qualified.MainClass</mainClass>
            </manifest>
          </archive>
        </configuration>
      </plugin>
    </plugins>
  </build>

Aber vermutlich wirst Du noch in das nächste Problem reinrennen, dass Abhängigkeiten fehlen. Da wären dann die Abhängigkeiten mit bereit zu stellen oder man nutzt ein weiteres Plugin wie das shade Plugin, dass dann die Abhängigkeiten mit in dein jar steckt.
 

Zurück
Oben