Fehlerhafter Eclipse Export in JAR

Kontar

Grünschnabel
Hallo,

mein Export einer jar-Datei macht derzeit etwas Schwierigkeiten. Bisher habe ich den Export immer erfolgreich wie auch hier beschrieben getätigt. Beim jüngsten Fall treffe ich auf die bekannte Fehlermeldung "Could not find the Main-Class...". Dazu muss ich sagen, dass ich über Properties -> Java Build Path, externe libraries eingefügt habe. Meine Manifest Datei liegt im Workspace unter "META-INF" und sieht so aus:
Code:
Manifest-Version: 1.0
Created-By: 1.6.0_24-b07 (Sun Microsystems Inc.)
Main-Class: oara.CsWindow
+ eine leere Zeile

Meine Klassen seht ihr im angehängten Bild. In CsWindow steckt die Main-Method, welche auch im Wizard als Main-Class angegeben wurde, jedoch ohne Veränderung.

Danke
 

Anhänge

  • eclipse.PNG
    eclipse.PNG
    12,4 KB · Aufrufe: 20
Zuletzt bearbeitet:

j2se

Erfahrenes Mitglied
Weshalb hast Du noch Outlook im Manifest angegeben? Gemäss Grafik genügt ein
Main-Class: oara.CsWindow

Zudem musst Du in Eclipse sagen, dass Du Dein eigenes Manifest verwenden willst und sagen, wo es liegt. Ist das auch ok?
 
Zuletzt bearbeitet:

Kontar

Grünschnabel
Die Manifest Datei habe ich diesbezüglich mehrmals editiert. Dein Vorschlag war meine Ausgangssituation, mit welcher es ebenfalls nicht funktioniert hat. Ich habe das Beispiel oben mal angepasst, da der Zwischenschub "Outlook" natürlich Käse ist.

Beim Export habe ich den Pfad der Manifest Datei eingetragen.
 
Zuletzt bearbeitet:

j2se

Erfahrenes Mitglied
Versuche einmal den Export ohne eigenes Manifest durchzuführen in dem Du im Fenster "JAR Manifest Specification" die Auswahl "Generate the manifest file" anklickst und die Main-Class explizit auswählst. Wird so die main() Methode gefunden?
 

Kontar

Grünschnabel
Sorry ich hätte vielleicht im Vorfeld meine vorangegangenen Versuche schildern sollen.. Die Generierung der Manifest Datei habe ich zu Beginn gewählt. Dies schlug, genau wie die explizite Auswahl der Main-Class fehl. Auch der Export einer "runable JAR" bleibt ohne Erfolg. Meine Umgebungsvariablen habe ich ebenfalls geprüft.

Code:
CLASSPATH = C:\Program Files\Java\jdk1.6.0_20\lib
Code:
PATH = C:\Program Files\Java\jdk1.6.0_20\bin
 

j2se

Erfahrenes Mitglied
Kann es sein, dass die Signatur der main() Methode fehlerhaft ist?

Ich habe testweise in Eclipse eine package oara mit den drei Klassen erstellt, welche jeweils einen Konstruktur aufweisen und innerhalb des Konstruktors ein "Instanz von Klassenname" ausgeben. Die main() Methode ist in der Klasse CsWindow enthalten und instantiiert sich selbst sowie die beiden anderen Klassen. Eine manifest.txt ist ebenfalls vorhanden und enthält

Manifest-Version: 1.0
Main-Class: oara.CsWindow

Danach habe ich Export -> JAR file ausgewählt, die Destination angegeben, dann Next -> Next und use existing manifest mein manifest.txt angegeben und Finish. In einer Dos-Konsole bin ich ins Verzeichnis mit meinem Jar-File gegangen und habe

java -jar CsWindow.jar

angegeben. Gemäss dem Inhalt der main() Methode wurden alle Klassen erfolgreich instantiiert und der Output ist

Instanz von CsWindow
Instanz von InOut
Instanz von OutlookControl

Das Eclipse Projekt findest Du im angehängten Zip-File JarExample. Ebenfalls enthalten ist das erzeugte Jar. Um Deine Java-Umgebung zu testen würde ich zuerst das angehängte CsWindow.jar wie oben gezeigt starten. Ist der Output ok, dann können wir Fehler in der Java-Umgebung ausschliessen.

Sag bitte Bescheid, wie es gelaufen ist!

BTW: Der Code wurde mit Eclipse Indigo Service Release 1 sowie Java 1.6.0_27-b07 erstellt.
 

Anhänge

  • JarExample.zip
    6,5 KB · Aufrufe: 13
Zuletzt bearbeitet:
S

SE

Code:
CLASSPATH = C:\Program Files\Java\jdk1.6.0_20\lib
Code:
PATH = C:\Program Files\Java\jdk1.6.0_20\bin

Zwei Fragen :
1) Was sucht das JDK-Verzeichnis im CP ? Sag uns bitte nicht das du dort rum-compilest und so weiter ...
2) Ist das alles was im PATH steht oder steht der Rest der vorher drin stand auch noch drin ? Falls da nur noch das JDK drinstehen sollte ... dürfte dein System extreme Probleme haben irgendwas richtig auf die Reihe zu bekommen.
 

Kontar

Grünschnabel
Wenn Du mir Dein Jar-File als Attachment oder via PN zur Verfügung stellst, kann ich reinschauen, weshalb die main() Methode nicht gefunden wird.

Ich habe dir mal meinen Workspace geschickt, welchen du importieren kannst. Da der Fehler ja scheinbar nicht an meiner Umgebung liegt, wird es relativ wenig bewirken die fehlerhafte JAR zu erhalten.

1) Was sucht das JDK-Verzeichnis im CP ? Sag uns bitte nicht das du dort rum-compilest und so weiter ...

Ich kompiliere nirgendwo "rum" und das JDK sucht im CP nichts sondern wurde von mir so gesetzt. Wenn du Informationen willst und seien sie auch zur Problemlösung meines Themas, dann mach das bitte auf eine anständige Art.

2) Ist das alles was im PATH steht

Nein, meine obige Angabe zur PATH-Variable wurde von mir auf den für Java relevanten Teil begrenzt.
 
Zuletzt bearbeitet: