[NEWSboard IBMi Forum]
  1. #1
    KM is offline [professional_User]
    Registriert seit
    Apr 2003
    Beiträge
    1.005

    /QIBM/UserData/Java400/ext

    Hallo,

    wir haben ein RPG-Programm, das Java-Klassen verwendet, um native Excel-Tabellen zu erstellen. Die zugehörigen Jar-Archive von POI stehen im Ordner "/QIBM/UserData/Java400/ext". Das hat auch immer problemlos funktioniert.

    Nach dem Release-Wechsel auf V7R5 werden nun die Java-Klassen nicht mehr gefunden. Hat sich hier irgendwas bzgl. Suchpfad bzw. Classpath geändert? Ich konnte leider nichts dazu finden. Wenn ich den Classpath fest angebe, dann werden die Klassen wieder gefunden.

    Vielen Dank schon mal,
    KM

    PS: Über den Sinn von Java innerhalb von RPG möchte ich hier nicht diskutieren.

  2. #2
    Registriert seit
    Mar 2002
    Beiträge
    5.287
    ... mit dem Release Wechsel hat sich das JAVA_HOME geändert und der Wackelhaufen ist umgefallen.

    D*B
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  3. #3
    Registriert seit
    Nov 2020
    Beiträge
    331
    Am besten ist, wenn benötigte Libs (jar-Files) in einem eigenen lib-Ordner gespeichert werden (außerhalb der IBM i Standard Ordner).
    Der Classpath wird dann mit diesen lib-Ordner gesetzt.
    Damit bist du unabhängiger.

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Der CLASSPATH muss je Anwendung immer gesetzt werden, da er ja immer unterschiedlich sein kann.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  5. #5
    KM is offline [professional_User]
    Registriert seit
    Apr 2003
    Beiträge
    1.005
    ... mit dem Release Wechsel hat sich das JAVA_HOME geändert und der Wackelhaufen ist umgefallen.
    Diese Aussage hilft mir jetzt wenig. JAVA_HOME hat ja nichts mit dem Classpath zu tun.

    Der CLASSPATH muss je Anwendung immer gesetzt werden, da er ja immer unterschiedlich sein kann.
    Das war bisher mit dem ext-Ordner nicht nötig, denn das war ja der Standard-Pfad in dem nach Jar-Archiven gesucht wurde. Und wenn die Jar-Archive da drin waren, gab es auch nie Probleme.
    Übrigens bringt es auch nichts den CLASSPATH je Anwendung zu setzen, denn wenn die JVM erst mal gestartet ist, kannst Du den CLASSPATH innerhalb eines Jobs ändern wie Du willst. Das juckt die JVM dann nicht mehr und findet auch nichts anderes mehr.

    Am besten ist, wenn benötigte Libs (jar-Files) in einem eigenen lib-Ordner gespeichert werden (außerhalb der IBM i Standard Ordner).
    Der Classpath wird dann mit diesen lib-Ordner gesetzt.
    Damit bist du unabhängiger.
    Das werde ich dann wohl so machen müssen. Aber seltsam finde ich das schon, dass im ext-Ordner nichts mehr gefunden wird und auch keinerlei Infos über eine diesbezügliche Änderung dazu zu finden sind.

    Vielen Dank,
    KM

  6. #6
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Ich habe mir alle benötigten Jars immer in mein App-Verzeichnis gelegt und den CLASSPATH auf dieses gesetzt. Dies hat auch den Vorteil, dass ich für jede App ggf. unterschiedliche Versionen eines Jar verwenden kann, z.B. eine Test- und eine Echtversion.

    Und eine gemeinsame JVM für unterschiedliche Apps gibts ja nicht (oder macht keinen Sinn). Es wird für jeden RUNJVM (oder via QSH "java ...") immer eine neue JVM gestartet.
    Somit bringt das Ändern einer globalen CLASSPATH-Variable wirklich nichts, da die JVM als Job eine Kopie bekommt.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  7. #7
    Registriert seit
    Mar 2002
    Beiträge
    5.287
    ... warum fragst Du eigentlich, wenn Du alles besser weißt?
    @JAVA_HOME: mit der Änderung von JAVA_HOME werden das lib/ext Verzeichnis und die SystemDefault properties woanders gesucht, womit dort hinterlegte Einträge und jar files nicht mehr gefunden werden.

    @ext Mechanismus: im default werden jar files im Verzeichnis lib/ext im JAVA_HOME gesucht, was man in den SystemDefault properties oder beim Aufruf per Parameter (scheidet bei den RPG Krücken aus) ändern kann. Anwendungs jar files hier zu platzieren ist ein ernsthafter Kunstfehler, da hier noch vor dem CLASSPATH gesucht wird. (In den SYSLIBL oder gar in die QSYS gehören auch keine Applikationen)

    @Classpath nach Anwendung: Classpath global auf Systemebene führt dazu, dass bestimmte Anwendungen nicht zusammen auf derselben Maschine ausgeführt werden können. Das ist die Abteilung RPG-Java Murks, von der Du ja nichts hören willst. Jeder ist seines Glückes Schmied!!!

    D*B
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

Similar Threads

  1. Verzeichnis QIBM
    By USER777 in forum NEWSboard Programmierung
    Antworten: 4
    Letzter Beitrag: 11-08-15, 13:24
  2. Verkauf IBM 7208-342 ext. Tape Drive
    By intrag in forum NEWSboard Server & Hardware Markt
    Antworten: 2
    Letzter Beitrag: 09-02-14, 10:54
  3. ext. Datenstruktur erweitern
    By co_steffl in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 09-02-11, 13:23
  4. wie Feld aus ext DS umbenennen ??
    By Peter Kosel in forum NEWSboard Programmierung
    Antworten: 3
    Letzter Beitrag: 22-09-03, 15:08
  5. XML-Datensätze aus ext. Printerfiles ohne Programmierung erzeugen
    By Klaus in forum NEWSboard Server Software
    Antworten: 0
    Letzter Beitrag: 17-12-02, 12:47

Berechtigungen

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