JAR - Main-Klasse im Terminal angeben
bubble
- java
Ich stehe vor einem (eigentlich) recht simplen Problem, dass ich aber nicht gelöst bekomme.
Ich werkel zum ersten Mal mit einem JAR-Archiv herum, dass mehrere Klassen mit einer main()-Funktion beinhaltet. Nun dachte ich mir, dass ich dann die verschiedenen Programmabläufe einfach über
java -jar DemonServer.jar demonserver.DemonServer
ausführen könnte. Allerdings frisst mir Java da die Angabe der Hauptklasse als Argument weg und hat somit keine Hauptklasse und meckert herum.
kein Hauptmanifestattribut, in DemonServer.jar
Stell ich mich momentan einfach nur blöd an, oder gibt es da wirklich keinen Weg? Und wenn ich mich blöd anstelle, wie geht es richtig?
MfG
bubble
Hi,
Ich stehe vor einem (eigentlich) recht simplen Problem, dass ich aber nicht gelöst bekomme.
Ich werkel zum ersten Mal mit einem JAR-Archiv herum, dass mehrere Klassen mit einer main()-Funktion beinhaltet. Nun dachte ich mir, dass ich dann die verschiedenen Programmabläufe einfach über
java -jar DemonServer.jar demonserver.DemonServer
> ausführen könnte. Allerdings frisst mir Java da die Angabe der Hauptklasse als Argument weg und hat somit keine Hauptklasse und meckert herum.
>
> `kein Hauptmanifestattribut, in DemonServer.jar`
>
> Stell ich mich momentan einfach nur blöd an, oder gibt es da wirklich keinen Weg? Und wenn ich mich blöd anstelle, wie geht es richtig?
Zwei Vorgehensweisen:
1\. es gibt nur eine "Start"-Klasse: diese wird im MANIFEST.MF im Jar-File bei Main-Class: angegeben.
2\. es gibt mehrere "Start"-Klassen: statt -jar gibst Du das jar bei -classpath an, und rufst dann die jeweilige "Start"-Klasse explizit auf.
cu,
Andreas
--
[Warum nennt sich Andreas hier MudGuard?](http://MudGuard.de/)
[O o ostern ...](http://ostereier.andreas-waechter.de/)
Fachfragen per Mail sind frech, werden ignoriert. Das Forum existiert.
Stell ich mich momentan einfach nur blöd an, oder gibt es da wirklich keinen Weg? Und wenn ich mich blöd anstelle, wie geht es richtig?
- es gibt mehrere "Start"-Klassen: statt -jar gibst Du das jar bei -classpath an, und rufst dann die jeweilige "Start"-Klasse explizit auf.
Nicht nur blöd, gar selten dämlich hab ich mich da angestellt. Wenn ich was überflogen hab, und kein -jar gesehen hab, hab ichs gleich verworfen.
Danke für die schnelle und hilfreiche Antwort :)
MfG
bubble