Laden...

[erledigt] Java/Eclipse: Exportierte Jar-Datei lässt sich in der Kommandozeile nicht ausführen

Erstellt von ANSI_code vor 11 Jahren Letzter Beitrag vor 11 Jahren 10.031 Views
ANSI_code Themenstarter:in
467 Beiträge seit 2007
vor 11 Jahren
[erledigt] Java/Eclipse: Exportierte Jar-Datei lässt sich in der Kommandozeile nicht ausführen

Hallo zusammen,
Ich habe in der Schule den Auftrag bekommen ein Programm zu erstellen (mit ein paar Leuten zusammen, die keine Ahnung haben und mir nicht helfen können), das Fußballvereine und Spiele in Tabellen darstellt. Leider muss ich es in Java machen, mit GUI wobei ich noch nicht genau weiß welche Bibliotheken ich nehmen soll.
Obwohl ich noch nie wirklich in Java programiert habe, war ich relativ zuversichtlich. Ich habe mir die Klassen als Diagramme hingemalt, und bin mit der Planung schon fertig, das einzige was ich noch tun muss, ist das ganze in Java umzusetzten.

Da kommt auch das erste Problem: Ich hab mir Eclipse geholt (richtige Entscheidung?), und bin an Hello World gescheitert! Das Ding läuft, aber nur im Console von Eclilpse. Wenn ich eine .jar Datei haben will (das sind doch die "ausführbaren"?) und auf Exportieren gehe, bekomme ich eine .jar Datei, bei deren aufsführung absolut nichts passiert. Ich habe das bisher nicht ändern können. Kann mir jemand sagen, woran das liegen könnte? "Export/Runable jar File/ Configuration(was ist das), package required libraries into jar", ich bekomme eine Datei, und die macht absolut nichts.
Ich have im Internet gesucht nach Lösungen und ca. 4 verschiedene Java runtimes installiert, aber es hilft nichts.
Desweiteren bin ich daran gescheitert eine Entsprechung zu List<T> in C# zu finden.
Es soll eine Collection sein, die Methoden der T-Klasse erlaubt das Ordnen vorzunehmen.
Vielen Dank im Voraus für eure Hilfe.

C
1.214 Beiträge seit 2006
vor 11 Jahren

Das ist jetzt zwar Java, aber das fällt für mich genauso in die Kategorie Grundlagen, wie wenn das jetzt eine Frage zu C# wäre. Wenn du keine Ahnung hast, bring dir Grundlagen bei. Ich sehe ganz ehrlich keinen Sinn, warum dir hier jetzt jemand vorkauen sollte, was eine Jar Datei ist und welche Klasse man in Java für Listen benutzt.

ANSI_code Themenstarter:in
467 Beiträge seit 2007
vor 11 Jahren

Vielen Dank für deine Antwort,
in der Tat weiß ich was eine Jar Datei ist und die Klasse für Listen habe ich gefunden.

Jetzt geht es nur noch um das SDK. Ich wäre auch sehr dankbar falls mir jemand ein Tutorial zu Eclipse empfehlen könnte, oder wenn jemand weiß, was ich beim Exportieren der Applikation falsch mache.

C
1.214 Beiträge seit 2006
vor 11 Jahren

Es gehört schon ein bisschen was dazu... Ganz so einfach ist das alles nicht. Da reicht kein Eclipse Tutorial und Eclipse reicht da nicht.

Was passiert denn, wenn du die Jar ausführst? Starte sie von der Kommandozeile aus und schau, was für ein Fehler kommt.

ANSI_code Themenstarter:in
467 Beiträge seit 2007
vor 11 Jahren

Beim direkten "Ausführen" der Datei passiert nichts.
Mit dem cmd "java [Dateipfad]" liefert die Fehlermeldung "Fehler: Hauptklasse [Pfad] konnte nicht gefunden oder geladen werden"
Die Datei und die Hauptklasse haben identische Namen (hab irgendwo gelesen, dass das ne Rolle spielen soll)
Ich glaube, das hilft mir schon sehr weiter. Ich suche mal nach Tips zu der Fehlermeldung.
Danke für die Hilfe.

C
1.214 Beiträge seit 2006
vor 11 Jahren

Jar Dateien startet man normal mit java -jar

Hast du beim Export die Hauptklasse angegeben?

ANSI_code Themenstarter:in
467 Beiträge seit 2007
vor 11 Jahren

Oh, das ist jetzt peinlich. Tut mir Leid. Hab ich übersehen
Wenn ich das mache, funktioniert das Programm beim Aufruf aus der Komandozeile.
Ich bin allerdings nicht sicher, wie man die Hauptklasse angibt (ich nehme an das ist die launch configuration, in dem Fall hab ich sie wohl richtig angegeben)

Muss ich, wenn ich will, dass der Rechner jar Dateien per Click ausführt den Befehl zum öffnen des Dateityps direkt ändern? Ich hatte angenommen, das wurde das bei der Instalation von der Runtime vorgenommen.

C
1.214 Beiträge seit 2006
vor 11 Jahren

Man kann eine Hauptklasse angeben, wenn man ein Manifest erstellt. Ich hab schon länger kein Eclipse mehr benutzt, Netbeans gefällt mir in den letzten Jahren besser. Hier ist was beschrieben, bin mir nicht 100% sicher, obs aktuell ist:

Java File Exporter

Ich denke schon, dass bei der Installation unter Windows die .jar Zuordnung richtig gemacht werden sollte. Aber man kann sich da natürlich nie sicher sein. Kannst ja einfach in der Registry schauen bzw. anpassen, unter HKCR/jarfile/shell/open/command

ANSI_code Themenstarter:in
467 Beiträge seit 2007
vor 11 Jahren

Der Innhalt des Eintrags sieht eigentlich ganz gut aus:
"C:\Program Files\Java\jre7\bin\javaw.exe" -jar "%1" %*

Oder machen die % Dinger was kaputt? Kann ich mir eigentlich nicht vorstellen, schließlich wurde der Schlüssel von der Instalation geschireben.
Kann es sein, dass unter Windows 7 irgendwelche Zugriffsrechte ein Problem sind?
Immerhin habe ich das Ausführproblem gelöst, das heißt ich kann jetzt mein Programm machen. Der Rest ist nur noch Bequemlichkeit. Vielen Dank für die schnelle Hilfe 😃

A
10 Beiträge seit 2010
vor 11 Jahren

So schon länger nichts geschrieben ^^

Der Eintrag ist richtig.

Das Problem ist nur, dass im Gegensatz zu regulären Komandozeilenprogrammen keine Console geöffnet wird (Eclipse "emuliert" eine Kommandozeile).

Von daher must du selber erstmal eine CMD öffnen und dann die jar Datei mit java -jar JARFILE.jar starten.
Es kann sein, dass du, wenn du die Jar-Datei über die CMD öffnen willst eine Fehlermeldung kommt, dass java nicht gefunden wurde, in dem fall must du java in deine Path Variable eintragen (Pfad zum java/bin Ordner)

[EDIT]
Übrigens die Eclipse jar Dateien sind meistens ohne Probleme nutztbar, solang man
keine Dlls oder fremde libs nutzt. Im falle von fremden libs empfehle ich die class
Dateien direkt in die eigene Jardatei einzufügen

C
1.214 Beiträge seit 2006
vor 11 Jahren

Ich bin mir ehrlich gesagt nicht mal sicher, obs einen Fehler gibt. Ich denke eher, es funktioniert alles, nur wird die Konsole gleich wieder geschlossen, nachdem die Ausgabe erfolgt ist. Bau noch was ein, damit das Programm auf einen Tastendruck wartet, bevor es sich beendet.

ANSI_code Themenstarter:in
467 Beiträge seit 2007
vor 11 Jahren

Die Konsole wird nicht geöffnet. Aber das ist jetzt auch nicht mehr wichtig, ich werde ja nicht einmal Konsolenprogramme schreiben müssen. Wollte nur schauen, ob ich alles kompiliert und archiviert kriege.
Vielen Dank für eure Hilfe!
(ist es immernoch üblich ein [gelöst] in den Titel einzufügen?)

Hinweis von herbivore vor 11 Jahren

Das liegt (immer noch 😃 in deinem Ermessen. Wobei aus meiner Sicht "[erledigt]" vorzuziehen ist, denn was für den einen eine Lösung ist, ist für den anderen nur ein vager Hinweis oder sogar ein Rätsel. "[gelöst]" kann man verwenden, wenn am Ende des Threads explizit eine fertige und funktionierende Lösung steht.