# Ausführbare Datei(jar)



## SirWayne (29. Mai 2007)

Hallo,
Ich wollte eine jar datei machen, die mein programm mit einem doppelklick öffnet!
1. für was wird das das manifest genau benötigt?
2. wie baue ich den .classpath mit ein ,da ich noch andere jars benutze
3. brauch ich die .java dateien in meinem jar file um das programm zu starten?


----------



## MeinerEiner_80 (29. Mai 2007)

Moin!
1) U.a. für den einstiegspunkt, d.h. die Mainklasse deiner Anwendung, den Klassenpfad, etc. etc.
Siehe dazu auch:
http://java.sun.com/j2se/1.5.0/docs/guide/jar/jar.html#JAR Manifest
bzw.
http://java.sun.com/docs/books/tutorial/deployment/jar/manifestindex.html

2)
Findet sich auch in diesen Links

3)
Nö

*grüssle*
MeinerEiner


----------



## zerix (29. Mai 2007)

Hallo,

Jar-Dateien werden nur mit Doppelklick gestartet, wenn es bei deinem Betriebssystem für diesen Dateityp so angelegt ist.

Ab Java 5.0 wird dies bei der Installation automatisch gemacht.

MFG

zEriX


----------



## SirWayne (29. Mai 2007)

Also ich habe das jar files so erstellt
jar -cfvm meinejar.jar meinemanifest.txt gui engine imgs

mein manifest sieht so aus
Zitat: 
Manifest-Version: 1.0 
Main-Class: main---> MUSS ICH HIER DEN PFAD ANGEBENPackage usw.
[Class-Path: myextension1.jar myextension2.jar] ---> Diese Zeile verstehe ich nicht ?

klappt alles wunderbar nur wenn ich es starte bekomm ich eine fehlermeldung main klasse nicht vorhanden programm will exit---sowas in der art !das jar und die verzeichnisse stimmen ,also denk ich mal liegt es am manifest


----------



## zerix (29. Mai 2007)

Bei Main-Class gibst du die Klasse mit der main-Methode an, komplett mit Pfad und Groß- und Kleinschreibung beachten.

Bei Class-Path gibst du die Jar-Files an die dein Programm braucht, auch mit Pfad. Du musst da jedes Jar-Archiv einzeln angeben.

Es wäre gut wenn du die Fehlermeldung posten würdest.

Wenn du eclipse nutzt kannst du damit aber auch leicht Jar-Files erzeugen.

http://www.tutorials.de/forum/java/242474-eclipse-export-jar.html


MFG

zEriX


----------



## MeinerEiner_80 (29. Mai 2007)

Moin..
Steht ja eigentlich alles in den Links.. aber najut:



SirWayne hat gesagt.:


> Main-Class: main---> MUSS ICH HIER DEN PFAD ANGEBENPackage usw.



ja, pfad muss angegeben werden.
z.B.:
package1.package2.MainClass


SirWayne hat gesagt.:


> [Class-Path: myextension1.jar myextension2.jar] ---> Diese Zeile verstehe ich nicht ?



Eigentlich sollte/darf? das nicht in [ ] stehen.. 
Ansonsten sollte es doch klar sein.. die Pfade zu den jeweiligen Archiven, welche du zu deinem Klassenpfad hinzufügen willst...


*grüssle*
MeinerEiner


----------



## SirWayne (29. Mai 2007)

Klasse wunderbar...hab nur den pfad im manifest vergessen
Kurz noch ne frage, wenn ich in meinem programm eine konsolen ausgabe habe,wohin schreibt er die in ein file oder muss ich das extra in ein file schreiben

ABER:
Ich habe ein login dialog der bleibt jetzt dauernd geöffnet und wenn ich die richtigen daten eingebe wird mein andere dialog nicht mehr geöffnet


----------



## zerix (29. Mai 2007)

Wenn du das jar-File mit 

```
java -jar Jar-File
```
startest, wird es in der Konsole ausgegeben. Bei der Installation von dem JDK/JRE wird aber javaw eingetragen und damit wird es nirgends ausgegeben. Also wenn du die Ausgaben sehen möchtest, musst du es in ein File schreiben oder irgendwie auf der GUI ausgeben.

MFG

zEriX


----------



## SirWayne (29. Mai 2007)

ok alles klar!

ich hab jetzt mein lodin dialog rausgenommen und will gleich mit der anwendung starten aber es passiert rein gar nichts keine fehlermeldung nichts und kein dialog 

könnte es an meine classpath liegen weil er nimmt irgendwie die jar-files,die ich benutze nicht mir rein?


----------



## zerix (29. Mai 2007)

Hallo,

starte dein Programm mal über die Konsole mit

```
java -jar deinFile
```

Da müsste dann ein Fehler kommen.

Hast du Jar-Files in deinem Jar-File? Das funktioniert nämlich nicht.

MFG

zEriX


----------



## MeinerEiner_80 (29. Mai 2007)

Moin!
Wenn du das Jar File mit eclispe erzeugst, wird afaik die zusätzlichen jar Files nicht in das manifest miteingetragen.
Entweder machst du das selbst, oder du nutzt ein Eclispe Plugin wie FatJar, welches alle zusätzlich benötigten Bilbiotheken in das Jar Archiv mit einpackt...

*grüssle*
MeinerEiner


----------



## zerix (29. Mai 2007)

Stimmt.

Bei eclipse kannst du ein eigenes Manifest-File angeben. In deinem Falls musst du das tun, falls du das Jar mit eclipse erzeugt hast.

MFG

zEriX


----------



## SirWayne (29. Mai 2007)

also ich benutze 2 jar files!
ich hab mein jar file selbst hergestellt 
wo muss ich die jar files angeben 
im manifest im classpath ?
auf jeden sind sind sie in meinem jar file mitdrin ....
nochmal um nichts falsch verstanden zu haben was muss ich alles im classpath im manifest angeben?


----------



## zerix (29. Mai 2007)

Deine Manifest-Datei von oben war richtig. halt ohne "[" und "]". Die anderen Jar-Files dürfen sich nicht in deinem Jar-File befinden. sie müssen sich außerhalb befinden, aber sie können im gleichen Verzeichnis sein.

Schau mal hier
http://www.tutorials.de/forum/java/274810-jar-mit-mehreren-jars-und-eclipse.html


MFG

zEriX


----------



## zerix (29. Mai 2007)

Beispiel:

MeinProg/ MeinJar.jar
MeinProg/lib/irgendeine.jar


Manifest.mf in MeinJar:

```
Manifest-Version: 1.0
Main-Class: mainPackage/main
Class-Path: lib/irgendeine.jar
```

Ich hoffe das ist verständlich.


MFG

zEriX


----------



## SirWayne (29. Mai 2007)

ja gut ich dachte ich hab des mit dem classpath falsch verstanden so hab ich es gemacht !
also ich hab mir die fehlermeldung anzeigen lassen danke für den tipp der war hilfreich...
bei mir hatte eine klasse ein ä im namen (omg ich ) und des hat ihm nicht gepasst


----------



## zerix (29. Mai 2007)

Ok, das konnten wir ja nicht wissen.


----------



## SirWayne (29. Mai 2007)

grins ich auch nicht bis ich das mit der fehlermeldung wusste !
noch eine letzte frage wie sag ich ihm das er in mein jar file nur .class dateien verwendet


----------



## MeinerEiner_80 (29. Mai 2007)

Wenn ich mich recht erinnere gibt es im beim Exportieren im Jar Package Specification ein Häckchen "Export java Source Files and Ressources", welches du deaktivieren musst..

*grüssle*
MeinerEiner


----------



## SirWayne (29. Mai 2007)

ähm keine ahnung habs mit eclipse noch nicht versucht ...


----------



## MeinerEiner_80 (30. Mai 2007)

Moin!
Oh.. irgendwie war ich der Meinung, du würdest Eclipse nutzen.. naja okay..

Also bei der Erstellung des Jar Archives kann man auch Wildcards (*) nutzen.

```
jar -cvf test.jar *.class //fuegt alle Dateien mit der Endung "class" in das Archiv ein...
```


*grüssle*
MeinerEiner


----------



## SirWayne (30. Mai 2007)

Moin!

Danke klappt wunderbar


----------

