PDA

View Full Version : Java Programm soll PDF-Files zusammenfügen



JonnyRico
15-09-05, 16:57
Hallo,

zuerst muss ich sagen das ich leider keine Ahnung von Java habe. Das Ziel ist es jetzt aber zwei PDF-Dokumente die im IFS liegen in ein Dokument "zusammen zu kopieren". Ich habe ein super Javaprogramm gefunden (http://physweb.bgu.ac.il/DOWNLOADS/joinPDF/). Wenn ich es von der Command-Line in Windows aufrufe (java -cp PDF.jar Concat \\MeineIseries\MYDir\out\out.pdf \\MeineIseries\MyDir\in\File1.pdf MeineIseries\MYDir\in\File2.pdf), dann macht es auch aus File1 und File2 eine Datei Out.pdf und alles ist gut. Nun dachte ich mir aber...naja JAVA...plattformunabhängig und IBM das muss doch gehen das ich die JAR-Datei auf die AS/400 bringe und das selbe dort mache. Wäre doch klar besser als ein RUNRMTCMD. Meine ersten kläglichen Versuche sind genau so kläglich gescheitert, weil ich nicht wirklich weiß wo in ansetzen soll. Ich habe die JAR-Datei in ein Verzeichnis gepackt und versucht mir RUNJVA etwas zu bewirken, aber ohne Erfolg. STRDBG mit angabe der Klassendatei habe ich schon versucht, aber da bekomme ich die Meldung (Die virtuelle Java-Maschine konnte nicht gestartet werden.). RUNJVA *VERSION bringt JDK 1.3.1. Kann mir jemand vielleicht einen Tip geben wie ich an die Sache am besten ran gehe? "Nur" ein JAVA-Programm starten kann doch nicht so schwer sein oder??

Also vielen Dank im Voraus.

Gruß und schönen Feierabend.

Sascha

KM
16-09-05, 06:43
Hallo Sascha,

in welchem Verzeichnis im IFS liegt denn Deine JAR-Datei und wo Deine PDFs? Wie sieht Dein CLASSPATH bzw. der genaue Aufruf aus ? Welche Fehlermeldung erscheint dann ?

Gruß,
KM

JonnyRico
16-09-05, 07:32
Moin,

also die JAR-Datei liegt im IFS unter "Root/MyDir/Join/PDF.jar". Die Eingabe-PDFateien liegen in "Root/MyDir/In/" und die Ausgabedatei soll "/Root/MyDir/Out/Filex.pdf" heißen. Meine Aufrufe bezogen sich eigentlich nur auf probieren. Das ist ja genau der Punkt. Ich weiß nicht wie man ein solchen Programm startet. Ich dachte jemand der sich damit auskennt, kann mir vielleicht anhand des Aufrufs vom PC aus sagen was man auf der AS/400 tun muss.

Gruß

Sascha

JonnyRico
16-09-05, 07:51
Hi,

juhu...ich habe es hin bekommen. Trotzdem danke für die Tips

Gruß

Sascha

KM
16-09-05, 08:05
Hallo Sascha,

in einem CL-Programm kannst Du auch einen QSH-Command einbauen. Außerdem könntest Du mit ADDENVVAR bzw. RMVENVVAR den Klassenpfad entsprechend setzen bzw. wieder entfernen. Allerdings muß die Umgebungsvariable CLASSPATH groß geschrieben werden. Dann brauchst Du den Classpath nicht beim Java-Befehl mit "-cp" anzugeben.

Gruß,
KM

kuempi von stein
16-09-05, 08:10
Hi,

juhu...ich habe es hin bekommen. Trotzdem danke für die Tips

Gruß

Sascha
moin moin,

erzähl mal bitte wie du es gelöst hast.
ich kenne auch nur den aufruf über qsh.

kuempi

JonnyRico
16-09-05, 08:16
Hi,

ich benutze auch QSH. Vorhin habe ich den Befehl QSH direkt eingetippt und dann den selben Befehl wie auf dem PC eingetragen und dann hat es funktioniert. Und jetzt rufe ich aus einem CL RUNJVA auf und der macht ja auch nichts anderes als die QSH zu benutzen. Zeigt sie mit OUTPUT(*NONE) ja nur nicht an.

Gruß

Sascha

KM
16-09-05, 08:17
So ungefähr könnte ein CL-Programm dafür aussehen:

PGM
ADDENVVAR ENVVAR(CLASSPATH) +
VALUE('/Root/MyDir/Join/PDF.jar')
QSH CMD('Java Concat \MYDir\out\out.pdf +
\MyDir\in\File1.pdf \MYDir\in\File2.pdf')
RMVENVVAR ENVVAR(CLASSPATH)
ENDPGM

Gruß,
KM

KM
16-09-05, 08:22
Mit folgender Befehlsstruktur im CL-Programm anstatt des QSH sollte es eigentlich auch funktionieren:

RUNJVA CLASS(Concat) PARM('/Parameter1' '/Parameter2' 'Parameter3') CLASSPATH('/myPfad') OUTPUT(*NONE)

Falls nicht, dann lass Dir doch mal den Output anzeigen.

Gruß,
KM

JonnyRico
16-09-05, 08:23
Hi,

genau so habe ich es gemacht :D

Gruß

Sascha