View Full Version : jar - Dateien auch hinzufügen?
andigoering
07-01-04, 20:01
Hallo!
Kann mir jemand sagen, wie die Syntax ausschaut, wenn man per QSHELL und "jar" eine Datei einem bestehenden Archiv hinzufügen möchte?
z.B. Datei FILE.XYZ
bestehendes Archiv ARCHIV.ZIP (enthält z.B. FILEALT.XYZ)
jar cf archiv.zip file.xyz
erstellt mir die Datei neu, d.h. filealt.xyz ist danach weg.
jar "ohne c", also jar f archiv.zip file.xyz geht aber nicht.
Andere Frage:
Kann man QSHELL dazu bringen das aktuelle Verzeichnis der nicht-QSHELL sitzung zu übernehmen?
folgendes Problem: aktuelles Verzeichnis wird per CHGCURDIR geändert, dann QSH, ein "ls" zeigt das User-home Verzeichnis aber nicht das vorher eingestellt CURDIR.
Danke für eure Antworten!
Andi
Hallo Andi,
das erste sollte mit jar -u statt -c gehen
Dieter Bender
andigoering
07-01-04, 21:04
Dieter,
"u" gibt es bei mir (V4R5/noch) nicht...
Habe aber inzwischen den Befehl "ajar" gefunden.
Dieser hat den Parameter -a für Hinzufügen.
Kennt jemand den Unterscheid zwischen jar und ajar?
Ist es vernünftig alles mit ajar zu machen?
Andi
Bruno Jakob
08-01-04, 07:38
ajar kann mehr als jar, ist aber deutlich langsamer. Ich würde es nur verwenden, wenns sein muß.
Gruß
Bruno
andigoering
08-01-04, 08:06
Bruno,
das mit der Performance ist natürlich schade...
aber bis jetzt habe ich keine Möglichkeit gefunden einer bestehenden zip-Datei per jar eine Datei zuzufügen. Ist doch eigentlich das normalste der Welt, oder?
Scheinbar ist der jar-Befehl nur für neue Archive gedacht. Frage mich dann allerdings warum es überhaupt den Parameter "c" gibt, wenn ja sowieso immer nur C-REATE gemacht werden kann.
Ich werde nun zweigleisig fahren:
Bei neuen Archiven JAR, bei bestehenden Archiven AJAR.
Ciao
Andi
Bruno Jakob
08-01-04, 08:44
Schau doch das mal an:
If you do not have ZIP available on your iSeries server, see "Bringing Zip and Unzip to OS/400 PASE and Qshell Environments”, TIPS0283.
Das habe ich vor einiger Zeit bei IBM gefunden, installiert und für gut befunden.
Gruß
Bruno
Andi,
jar ist Bestandteil der Java Implementierung und gehört dort zu den Tools, ist also standardisiert und läuft auf allen Java Plattformen.
ajar hat mit java nix zu tun, ist also OS/400 spezifisch.
die Möglichkeiten von jar hängen vom Java Stand ab. Selbiger sollte für V4R5 anhebbar sein.
Die Option -c wird auch deshalb benötigt, weil jar auch entzippen kann und ein paar Dinge mehr. Die genaue Doku dazu ist in der jeweiligen JDK Doku enthalten.
In Java ist ein Update auf ein Archiv eher selten, normalerweise beinhalten Archive Anwendungen und die werden beim Deploy einer Anwendung erstellt und dann so gut wie immer komplett neu vom Compile bis zum packen.
Dieter Bender
andigoering
08-01-04, 09:24
Bruno,
der Tip ist genial!
Der komplette Link ist übrigens:
http://publib-b.boulder.ibm.com/Redbooks.nsf/RedbookAbstracts/tips0283.html?Open
Wie ist es hier eigentlich mit der Performance?
Sollte man bei einfachen Operationen noch mit JAR arbeiten oder kann man das komplett vergessen?
Gruesse
Andi
Sven Schneider
08-01-04, 09:25
Noch ein Hinweis zu jar mit Parameter -u.
Jar gehört zum JDK bzw. zu java.
Ob der Parameter -u funktioniert hängt also nicht von OS/400 Version, sondern von der Java-Version ab.
In der qsh mit
java -version
die Version kontrollieren, und ggf. eine andere Version installieren.
5769JV1 1 5101 Java Developer Kit 1.1.6
5769JV1 2 5102 Java Developer Kit 1.1.7
5769JV1 3 5103 Java Developer Kit 1.2
5769JV1 4 5104 Java Developer Kit 1.1.8
5769JV1 5 5105 Java Developer Kit 1.3
Nachfolgende Version läuft erst ab OS/400 V5R1
5722JV1 6 5106 Java Developer Kit 1.4
Den Parameter -u gibt es es erst ab Java Version 2 bzw. JDK 1.2.
Also 5769JV1 Option 3 oder 5 installieren und in der SystemDefault.properties folgendes eintragen.
java.version=1.2
Gibt es keine SystemDefault.properties ist das die Suchreihenfolge (Bei OS/400 V4R5) für die standardmäßig verwendete JDK Version
Option 4 (JDK 1.1.8)
Option 2 (JDK 1.1.7)
Option 1 (JDK 1.1.6)
Das heißt OS/400 V4R5 verwendet die höchste installierte JDK 1.x Version!!!
(Ab V5R1 ist das standarmäßig die höchste installierte JDK 2 Version, wenn nicht vorhanden dann die höchste JDK 1)
Also entweder alle JDK 1 deinstallieren oder SystemDefault.properties erstellen.
Die SystemDefault.properties muß entweder
im User home
oder in
/QIBM/UserData/Java400
stehen.
Sven
Bruno Jakob
08-01-04, 10:13
Zur Performance:
Ich habe eine Job der archiviert ca. 22000 PDF-Dateien. Da habe ich mal die verschiedenen Möglichkeiten getestet. jar und zip waren ungefähr gleich schnell, ajar hat fast die doppelte Zeit gebraucht.
Ich verwende sowohl jar als auch zip.
Gruß
Bruno