2017-10-01 1 views
1

Ich versuche, die Windows-Befehlszeile zum Ausführen meiner Klassendateien zu verwenden. Allerdings, wenn ich versuche, es zu laufen, funktioniert nie etwas, und ich sehe nur dieDas Ausführen von "java ivy.IVYbot.IVYbot.Main" im target/classes-Verzeichnis gibt keinen Hauptklassenfehler zurück

Error: Could not find or load main class Main. 

ich mehrere verschiedene Lösungen rund um diese Seite versucht haben. (Die Klassendatei Ich möchte in Ziel/classes/Efeu/Ivybot/Ivybot/Main.class entfernt.)

> C:\Users\Ivy\Documents\GitHub\IVYbot\target\classes> java ivy.IVYbot.IVYbot.Main 
Error: Could not find or load main class ivy.IVYbot.IVYbot.Main 

> C:\Users\Ivy\Documents\Github\IVYbot> java -cp .;.\target\classes Main 
Error: Could not find or load main class Main. 

> C:\Users\Ivy\Documents\Github\IVYbot> java -cp .;.\target\classes ivy.IVYbot.IVYbot.Main 
Error: Could not find or load main class ivy.IVYbot.IVYbot.Main. 

> C:\Users\Ivy\Documents\Github\IVYbot\target\classes\ivy\IVYbot\IVYbot> java Main 
Error: Could not find or load main class Main. 

ich sogar versucht, die ganze Sache in eine .jar-Datei durch Maven Kompilieren (mit Abhängigkeiten).

> C:\Users\Ivy\Documents\Github\IVYbot\target> java -jar IVYbot-0.0.1-SNAPSHOT-jar-with-dependencies.jar 
no main manifest attribute, in IVYbot-0.0.1-SNAPSHOT-jar-with-dependencies.jar 

obwohl es sollte, wie

> C:\Users\Ivy\Documents\Github\IVYbot\target> jar tf IVYbot-0.0.1-SNAPSHOT-jar-with-dependencies.jar 
META-INF/ 
META-INF/MANIFEST.MF 
... 

zeigt. Ich habe keine Ahnung, was mit meinem Weg nicht stimmt. Das Plugin, das ich für meine Maven verwenden, wenn dies nützlich ist:

<build> 
    <plugins> 
     <plugin> 
     <artifactId>maven-assembly-plugin</artifactId> 
     <executions> 
      <execution> 
      <phase>package</phase> 
      <goals> 
       <goal>single</goal> 
      </goals> 
      </execution> 
     </executions> 
     <configuration> 
      <descriptorRefs> 
      <descriptorRef>jar-with-dependencies</descriptorRef> 
      </descriptorRefs> 
     </configuration> 
     </plugin> 
    </plugins> 
</build> 

Antwort

1

Nachdem Sie mit dem Maven Plugin zusammengestellt und montiert das Glas mit seiner Abhängigkeit, können Sie Ihre Klasse mit dem folgenden Befehl ausführen:

java -cp IVYbot-0.0.1-SNAPSHOT-jar-with-dependencies.jar ivy.IVYbot.IVYbot.Main 

Andernfalls, wenn Sie nur die Klasse ausgeführt werden sollen, die Sie zusammengestellt haben, können Sie den folgenden Befehl verwenden, aber nicht vergessen, in dem Verzeichnis zu sein, in dem die kompilierte Klasse:

java -cp . Main 

Dies liegt daran, dass Sie den Klassenpfad angeben müssen, um Ihre Klasse auszuführen, und . teilt Java mit, das aktuelle Verzeichnis als Klassenpfad zu verwenden.