# jar lässt sich nicht ausführen



## Elster (1. Sep 2012)

Hallo zusammen

Ich nutze Win7 und eclipse.
Meine Gruppe und ich haben eine GUI mit SWT erstellt (inkl. Main und anderen Klassen).
Jetzt haben wir versucht unsere GUI in eine runnable jar file zu packen, ein mal mit der Export-Funktion und dann auch noch mal mit FatJar.
Beide jars lassen sich aber nicht starten. 
Wenn wir öffnen mit "Java(TM) Platform SE binary" auswählen passiert einfach mal gar nichts.

Wir müssen das morgen abgeben und sitzen gerade ziemlich unter Strom weil die jar nicht laufen will.

Ich wäre super glücklich wenn jemand eine schnelle Lösung parat hätte.
Aus den Lösungen im Netz wurde ich jetzt nicht so schnell schlau.

Eine kleine Anleitung der man folgen könnte wäre schon recht hilfreich.

Danke schon mal im Vorraus.


----------



## Gast2 (1. Sep 2012)

per Konsole ausführen und schauen was die Fehlermeldung sagt.


----------



## tröööt (1. Sep 2012)

Ich Wette mit dir um 100€ das du in Eclipse mit Java7 compilest, es aber so in Win mit Java6 ausführen willst ...

Lösung : Java6 deinstallieren ...



ps : 1) ich will die kohle xD 2) gab und gibt es über dieses Problem bei google mal eben schlappe 45000 ergebenisse und 3) sollte man als programmierer mal ein bisschen eigeninitiative zeigen ein problem selbst lösen zu wollen ...


----------



## Elster (1. Sep 2012)

Meldung: Hauptklasse konnte nicht gefunden werden.
Interessant, ich habe die main da doch angegeben.

@tröööt
Ich sitz schon etwas länger da dran. Ich habe auch schon Einiges ausprobiert aber bis jetzt ohne Erfolg.


----------



## Final_Striker (1. Sep 2012)

Steht die main Klasse auch in der Manifest der Jar Datei?

Ist das oben beschriebene Problem mit verschiedenen Java Versionen ausgeschlossen?


----------



## KingOfExceptions (1. Sep 2012)

Ich würde mal das hier in der cmd ausführen und gucken, ob und welche Fehlermeldung dort angezeigt wird.


```
java -jar meineJar.jar
```


----------



## Elster (2. Sep 2012)

@Final: ja, steht in der Manifest drin

@King: kennt den Befehl java nicht. So wie ich das im Netz lese muss ich dafür noch den path bei den Umgebungsvariablen anpassen... was gerade daran scheitert das ich, trotz das ich Admin bin, da nichts bearbeiten darf.


----------



## Camino (2. Sep 2012)

Ja, Java sollte bei den Umgebungsvariablen schon im Path eingetragen sein. Wahlweise kannst du ja auch mal ins Verzeichnis von Java wechseln (bin) und von dort dann die jar-Datei (mit Pfadangabe) aufrufen.


----------



## Pentalon (2. Sep 2012)

Hi Elster

In der Commandline kannst Du die Path Variable abfragen, in dem Du path [Enter] eingibst.
Da steht offenbar bei Dir nichts vom einem Pfad zur Java Installation.
Temporär erweitern kannst Du den Pfad, in dem Du eingibst: set path=c:\Program Files\Java\jdk1.7.0_02\bin;%path%
Damit hängst Du den Suchpfad zum Java Verzeichnis an den Anfang der Path-Variable wie Du mit path [Enter] prüfen kannst.
Das Verzeichnis in dem Dein Java liegt (bei mir c:\Program Files\Java\jdk1.7.0_02\bin) musst Du gegebenenfalls anpassen.
Diese Änderung beziehst sich nur auf den Comandointerpreter den Du geöffnet hat. Wen er geschlossen wird, ist die Änderung an der PathVariable weg.

Dauerhaft ändern kannst Du die Path Variable unter:
Systemsteuerung / System und Sicherheit / System/ Erweiterte Systemeinstellungen / Umgebungsvariablen

Hier suchst Du unter Systemvariablen die Variable Path und erweiterst Sie um den Pfad zu Deiner Java Installation wie oben (z.B. c:\Program Files\Java\jdk1.7.0_02\bin).

Pentalon


----------



## Elster (2. Sep 2012)

Der findet die SWT library nicht.

no swt-cocoa-3740 in java.library.path

Kann ich da irgendwo beim Export sagen, dass er die doch mal bitte mit nimt?
Weil bis auf SWT librarys wird Alles gefunden in dem Projekt.


----------



## Camino (2. Sep 2012)

Bei Eclipse im BuildPath eingetragen? Wenn du dann über Export ein Runnable JAR erstellst, kannst du angeben, wie deine externen JARs mit eingebunden werden.


----------



## Elster (2. Sep 2012)

Das hier ist sowieso sehr interessant.
Ich hab eben noch mal was nachgesehn.
cocoa ist die mac Unterstützund. Darauf sollte er nicht zugreifen.


Edit:
So ich hab jetzt die cocoa für Mac und das für Linux aus dem Lib. Ordner heraus genommen wo durch das schon mal erkannt wird. Jetzt findet er aber unsere Bilder nicht... die werden auch nicht mir in die .jar eingebunden (sollten sie aber).

Muss ich oder kann ich die über den BuildPath einbinden und wenn ja, da ich noch nie damit gearbeitet habe, wie mache ich das (Einfach einen Haken an die Kästchen da machen funktioniert nicht, da werden danach Fehler im Code geworfen)?


----------



## Camino (2. Sep 2012)

Elster hat gesagt.:


> Jetzt findet er aber unsere Bilder nicht... die werden auch nicht mir in die .jar eingebunden (sollten sie aber).



Du musst in Eclipse für die Bilder einen Source-Folder anlegen, in welchen du die Bilder legst, welcher dann auch beim BuildPath mit eingetragen und dann in die JAR-Datei übernommen wird. Auf die Bilder musst du dann in deinem Javacode mit 
	
	
	
	





```
getClass().getResource(PFAD/BILDNAME)
```
 zugreifen.


----------



## Elster (2. Sep 2012)

Verflucht.
Kann man irgendwie im Nachhinein normale Ordner zu Source-Folder ändern?
Klar die Befehle an den Stellen ändern sich dann aber ich könnte es mir ersparen die Bilder alle neu in das Projekt zu importieren.


----------



## Camino (2. Sep 2012)

Rechtsklick auf Ordnername -> Build Path -> Use as source folder


----------



## Pentalon (2. Sep 2012)

Also ich füge Bilder die ich im Programm brauche immer per Drag and Drop in den Sourceordner ein. Damit sind sie auf der gleichen Ebene wie das default Package.
Die Bilder lade ich dann z.B.


```
getClass().getClassLoader().getResource(fileName)
```

Beim erstellen als JAR werden sie dann auch miteingepackt.
Für viele Bilder ist das vielleicht nocht so optimal.

Pentalon


----------



## Elster (4. Sep 2012)

Danke für die ganze Hilfe.
Leider haben wir es nicht geschaft fertig zu werden zum Stichtag.

Aber trotzdem vielen lieben Dank euch Allen ^^


----------

