[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Apr 2002
    Beiträge
    792

    Java Programm soll PDF-Files zusammenfügen

    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

  2. #2
    KM is offline [professional_User]
    Registriert seit
    Apr 2003
    Beiträge
    1.005
    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

  3. #3
    Registriert seit
    Apr 2002
    Beiträge
    792
    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

  4. #4
    Registriert seit
    Apr 2002
    Beiträge
    792
    Hi,

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

    Gruß

    Sascha

  5. #5
    KM is offline [professional_User]
    Registriert seit
    Apr 2003
    Beiträge
    1.005
    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

  6. #6
    Registriert seit
    Aug 2004
    Beiträge
    923

    aufruf java

    Zitat Zitat von JonnyRico
    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

  7. #7
    Registriert seit
    Apr 2002
    Beiträge
    792
    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

  8. #8
    KM is offline [professional_User]
    Registriert seit
    Apr 2003
    Beiträge
    1.005
    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

  9. #9
    KM is offline [professional_User]
    Registriert seit
    Apr 2003
    Beiträge
    1.005
    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

  10. #10
    Registriert seit
    Apr 2002
    Beiträge
    792
    Hi,

    genau so habe ich es gemacht

    Gruß

    Sascha

Similar Threads

  1. Programm auf "ferner" AS400 ausführen.
    By Souljumper in forum NEWSboard Programmierung
    Antworten: 6
    Letzter Beitrag: 13-05-09, 19:50
  2. Antworten: 3
    Letzter Beitrag: 06-06-06, 15:57
  3. Java Programm aus ILE RPG aufrufen
    By PGMR in forum NEWSboard Java
    Antworten: 10
    Letzter Beitrag: 10-02-05, 10:33
  4. Java Programm aus ILE RPG aufrufen
    By PGMR in forum NEWSboard Programmierung
    Antworten: 0
    Letzter Beitrag: 02-02-05, 13:10
  5. Aufruf von Java Programm direkt aus RPG
    By mk in forum IBM i Hauptforum
    Antworten: 0
    Letzter Beitrag: 09-09-04, 08:22

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •