# umwandeln in .jar



## Slatanic (4. Jan 2009)

Hallo,
ich möchte gerne eine .class Datei (oder (die gleiche), noch nicht comipliere .java Datei) in eine .jar Datei umwandeln. Könnt ihr mir ein Tool empfehlen oder einen Tip geben?
Habe Win XP. 

THX S


----------



## frapo (4. Jan 2009)

Schau dir mal in deinem Java-SDK das Werkzeug jar an. 

Gruß
frapo


----------



## Slatanic (4. Jan 2009)

frapo hat gesagt.:
			
		

> Schau dir mal in deinem Java-SDK das Werkzeug jar an.
> 
> Gruß
> frapo



Da kann man .jar Dateien importieren, aber nicht umwandeln, oder? :bahnhof:


----------



## frapo (4. Jan 2009)

Slatanic hat gesagt.:
			
		

> Da kann man .jar Dateien importieren, aber nicht umwandeln, oder? :bahnhof:



Der Befehl jar dient sehr häufig (  ) dazu um .class-Dateien in ein Archiv zu packen, in ein .jar-Archiv. Umwandeln ist daher nicht der richtige Begriff. Es wird eher zusammen gepackt oder entpackt. 

Falls du die Dokumentation zu deinem SDK nicht lokal hast, hier der Link zu Sun: java.sun.com - jar


----------



## Slatanic (4. Jan 2009)

Danke erstmal für die schnellen Antworten! 

Danke für den Link. 
Ich muß um das Problem genauer zu beschreiben etwas weiter ausholen:

Ich möchte ein "funktionierendes" Java Programm auf meinem Handy öffnen. Das Handy "liest" .jar Files.

Wenn ich z.b. mit dieser Funktion:

C:\Java> jar cf myFile.jar *.class

arbeite, dann entsteht zwar eine .jar Datei, diese beinhaltet aber eine .class Datei, die das Handy wieder nicht lesen kann. Insofern würde ich sagen ist "umwandeln" schon der richtige Begriff, oder? Ich möchte ja nicht eine .class/.java Datei in eine .jar Datei "verschachteln".

Hast du noch nen Tip für mich? :?


----------



## frapo (4. Jan 2009)

Damit eine .jar-Datei direkt ausgeführt werden kann, muss in dem Archiv eine sogenannte Manifest-Datei (MANIFEST.MF) vorhanden sein. Dort muss dann z.B. drin stehen welche .class-Datei die Methode main(das ist quasi die 'Startmethode' bei Java-Programmen) enthält. 

Schau also einfach mal nach ein paar Infos zu diesen Schlagworten. 

z.B. hier:  Java-Anwendung starten - Wie? oder hier:  6 Varianten Java-Programme zu starten


----------



## Guest (4. Jan 2009)

Ok,
ich versuchte eine Manifest (MF) Datei nach folgender Vorgabe zu erstellen:

http://www.java-forum.org/de/viewtopic.php?t=14970

-------
Ich habe folgende Dateien unter:
C:\Javaprogramme\CHalloWelt.java
-----------------------\CHalloWelt.class
-----------------------\CHalloWelt.jar
-----------------------\meinmanifest.txt

-------
Ein einfaches Javaprogramm (CHalloWelt.java) zum testen. Folgender (funktionierende) Quellcode:


public class CHalloWelt {
  public static void main (String[] args) {
    System.out.println("Hallo Welt!");
  }
}


-------
in der meinmanifest.txt steht:

Manifest-Version: 1.0
Main-Class: CHalloWelt
[Class-Path: myextension1.jar myextension2.jar]

und folgendes habe ich auch schon probiert:

Manifest-Version: 1.0
Main-Class: CHalloWelt
[Class-Path: CHalloWelt.jar]

-------

in der Eingabeaufforderung (Prompt=C:\Javaprogramme) möchte ich mit folgenden Befehl(en) die .MF Datei erstellen:

jar -cvfm CHalloWelt.jar meinmanifest.txt CHalloWelt.class

und 

jar -cvfm CHalloWelt.jar meinmanifest.txt *.class


(Mit den Eingabeaufforderungen bekomme ich folgende Meldung

Manifest wurde hinzugefügt.
Hinzufügen von: CHalloWelt.class (ein = 425) (aus=287) (komprimiert 32%)

Aber WO wurde das manifest hinzugefügt? in der .class datei? Wo ist die MF Datei?
Muß ich erst die MF Datei der .class Datei hinzufügen, und dann die .jar Datei zu erstellen? 
puh, bin ich überforderter ein Noob.


----------



## frapo (4. Jan 2009)

Anonymous hat gesagt.:
			
		

> Aber WO wurde das manifest hinzugefügt? in der .class datei? Wo ist die MF Datei?
> Muß ich erst die MF Datei der .class Datei hinzufügen, und dann die .jar Datei zu erstellen?
> puh, bin ich überforderter ein Noob.



Die folgende Zeile von dir 
	
	
	
	





```
jar -cvfm CHalloWelt.jar meinmanifest.txt CHalloWelt.class
```
müsste dir eigentlich ein jar-Archiv mit dem Namen *CHalloWelt.jar* erstellen. Innerhalb dieses Archivs sollte sich dann auch die Manifest-Datei befinden. 
Ein jar-Archiv ist im Grunde einfach 'nur' ein anderes Archiv-Format, ähnlich wie es .zip-Dateien gibt. Du kannst einfach mal das jar-Archiv kopieren, es umbenennen in CHalloWelt.zip und dann mit z.B WinZip öffnen. Dort müsstest du dann den Inhalt des Archivs sehen, also auch die Datei MANIFEST.MF.


----------



## L-ectron-X (5. Jan 2009)

Wenn du das Ding per Doppelklick startest, wirst du feststellen, dass nichts passiert.  

Übrigens: In der FAQ liegt auch eine Batchdatei, die dir eine lauffähige Jar-Datei erstellen kann.


----------



## Slatanic (6. Jan 2009)

ok, funktioniert.
Wenn ich die Datei umbennene in eine .zip Datei und diese dann öffne, ist da die .class Datei und ein Ordner "META-INF" drinnen.
In dem Meta inf Ordner ist die .MF Datei. Wenn ich diese öffne, steht folgendes drinnen:

Manifest-Version: 1.0
Created-By: 1.6.0_11 (Sun Microsystems Inc.)


So, die .jar Datei habe ich aufs Handy gezogen, wollte diese (wie alle anderen .jar Dateien)  "installieren" und dann kommt die Meldung "Operation fehlgeschlagen".

Wo könnte da der Fehler liegen? Das Handy ist "Java" fähig (siehe dazu folgende Link´s

http://www.handys-mobile.de/sony-ericsson-k800i-datenblatt.html

http://www.handys-mobile.de/lexikon/java.html


----------



## L-ectron-X (6. Jan 2009)

Das geht nicht, du musst mit dem WTK bzw. JavaME arbeiten. Java-Desktop-Applikationen funktionieren nicht auf einem Handy.
http://www.java-forum.org/de/viewtopic.php?t=1987


----------

