Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Java-Archiv

Empfohlene Antworten

Veröffentlicht

Kann mir bitte einer sagen, wie man ein Java-Archiv anlegen kann.

Sollen beispielsweise alle .java-Dateien des aktuellen Verzeichnisses in ein Archiv mit der Bezeichnung blah.jar gepackt werden, so kann dazu folgendes Kommando verwendet werden:

jar cf blah.jar *.java

Das Inhaltsverzeichnis des Archivs kann folgendermaßen abgerufen werden:

jar tf blah.jar

Etwas ausführlicher geht es mit:

jar tvf blah.jar

Um die Datei Test.java aus dem Archiv zu extrahieren, kann das folgende Kommando verwendet werden (das natürlich auch ohne den Zusatz v funktioniert):

jar xvf blah.jar Test.java

Danke

Kann man auch ein Archiv so anlegen, das man starten kann. Da ich eins auf meinem Rechner habe, das man starten kann.

Deiner Jar Datei musst du dann ein Manifest file hinzufügen (die Option -m Manifestdateiname).

in einer Datei (Mainifest.mf) definierst du folgendes:

Manifest-Version: 1.0

Main-Class: Deine Klasse mit der Main

Class-Path: Zusätzliche Libraries, wenn du welche brauchst, ansonsten bleibt der Eintrag weg.

Bsp:

Manifest-Version: 1.0

Main-Class: de.emediaoffice.elk.organizer.CElkOrganizer

Class-Path: ../lib/metouia.jar ../lib/kunststoff.jar

Du solltest Dir auf den Seiten von Sun mal die Online-Dokus anschauen, da ist das sehr gut beschrieben, auch die Parameter zu den Programmaufrufen.

Auch die Sache mit dem Manifest-File steht dort ganz gut.

k.o.b

Original geschrieben von byte

Sollen beispielsweise alle .java-Dateien des aktuellen Verzeichnisses in ein Archiv mit der Bezeichnung blah.jar gepackt werden, so kann dazu folgendes Kommando verwendet werden:

jar cf blah.jar *.java

Das Inhaltsverzeichnis des Archivs kann folgendermaßen abgerufen werden:

jar tf blah.jar

Etwas ausführlicher geht es mit:

jar tvf blah.jar

Um die Datei Test.java aus dem Archiv zu extrahieren, kann das folgende Kommando verwendet werden (das natürlich auch ohne den Zusatz v funktioniert):

jar xvf blah.jar Test.java

Es macht wenig Sinn, Quellcode in JAR-Dateien zu verpacken, überlicherweise packt man da CLASS-Dateien da rein, weil ja anschließend nach dem Deployment das Programm ja ausführen möchte und das geht mit Quellcode nicht so gut.

Frank

also muss ich: "jar cf mein.jar *.class" eingeben und dann öffne ich das Archiv und ändere die Manifest Datei und gebe da meine Main Class an oder?

Original geschrieben von javaanfänger

also muss ich: "jar cf mein.jar *.class" eingeben und dann öffne ich das Archiv und ändere die Manifest Datei und gebe da meine Main Class an oder?

Ja, so dürfte es dann klappen. Wie gesagt die .class - Dateien nicht die .java.

Frank

Das mit dem direkten ändern der Manifest-Datei funktioniert nicht immer.

Deswegen mein Tip oben, denn bei SUN wird erklärt, wie man die manifest-Datei mithilfe einer zusätzlichen Textdatei ändert.

Es macht immer mehr Sinn, sich komplett mit einer Sache zu beschäftigen, als immer nur Bruchstücke zu konsumieren.

k.o.b

ich schaffe es leider nicht, auch mit einer eigenen Manifest-Datei.

Manifest-Datei(meine eigenen):

Main-Class: JMain

Archiv erstellen:

jar cvmf Manifest.txt(meine eigenen) JMain.jar *.class

so mach ich es immer aber es geht nicht.

Öffne mal das JAR File mit eine Zipper (Winzip o.ä.) und suche nach der Manifest.mf. Diese einfach mal öffnen und schauen ob die Main-Klasse auch wirklich definiert ist.

das ist ja das Problem da steht nichts drin auch, wenn ich dann was rein schreib über nimmt er es nicht

Hallo,

im Manifest steht min. folgendes.

-----------------------

Manifest-Version: 1.0

Main-Class: MainKlasse

-----------------------

Zeilenumbruch am Ende beachten.

Gruß Jaraz

Hallo nochmal.

Kann sein, das es irrelevant ist, aber normalerweise baut man den jar-Befehl so auf:

jar cvfm myapp.jar manifest.txt

Also zuerst die jar-Datei, dann die Manifest-Datei (die eigene).

Hast Du bei Deiner Manifest-Datei darauf geachtet, dass nach der Zeile Main-Class: JMain noch ein Zeilenumbruch kommt? Wenn nicht, dann gehts auch nicht.

k.o.b

Original geschrieben von kingofbrain

Kann sein, das es irrelevant ist, aber normalerweise baut man den jar-Befehl so auf:

Der Name der Manifest-Datei und der Name der Archivdatei müssen

in der gleichen Reihenfolge wie die Flags ''m'' und ''f'' angegeben werden.

Gruß Jaraz

Ah ja, danke!

Dann zählt nur das mit dem Zeilenumbruch in der Manifest-Ergänzung.

k.o.b

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.