星期一, 11月 06, 2023

2004-12-31 如何於 RPG 中呼叫 Java method ?


如何於 RPG 中呼叫 Java method ?

File  : QRPGLESRC
Member: JAVASYSR
Type  : RPGLE
OS Usage: OS/400 V5R1 以後(含)
          CRTBNDPGM JAVASYSR
          CALL JAVASYSR 產生報表
          WRKJOB option 4 即可檢視報表 QSYSPRT


      *********************************************************************
      *                                                                   *
      *  Get Java VM version System Properities                           *
      *  first check V5R2 5722SS1 PTF SI13932                             *
      *              V5R1 5722SS1 PTF SI10069                             *
      *  Then use following command specify run time JVM version:         *
      *                                                                   *
      *  ADDENVVAR ENVVAR(QIBM_RPG_JAVA_PROPERTIES)                       *
      *                 VALUE('-Djava.version=1.3;')                      *
      *  or                                                               *
      *  ADDENVVAR ENVVAR(QIBM_RPG_JAVA_PROPERTIES)                       *
      *                 VALUE('-Djava.version=1.4;')                      *
      *                                                                   *
      *********************************************************************
     H DEBUG  OPTION(*SRCSTMT:*NODEBUGIO)
     H dftactgrp(*no) thread(*serialize) bnddir('QC2LE')
      *********************************************************************
*s6*  * Java String method
      *********************************************************************
     FQSYSPRT   O    F  132        PRINTER

     D newString       PR              O   EXTPROC(*JAVA:
     D                                             'java.lang.String':
     D                                             *CONSTRUCTOR)
     D                                     Class(*JAVA:'java.lang.String')
     D value                      65535A   CONST VARYING

     D stringBytes     PR           100A   VARYING
     D                                     EXTPROC(*JAVA
     D                                            :'java.lang.String'
     D                                            :'getBytes')

     D stringLength    PR            10I 0
     D                                     EXTPROC(*JAVA
     D                                            :'java.lang.String'
     D                                            :'length')

      * java.lang.trim() --------------------------------------------------
     D trimString      PR              O   ExtProc(*JAVA:'java.lang.String'
     D                                     :'trim')
     D                                     Class(*JAVA:'java.lang.String')

     D newProp         PR              O   ExtProc(*JAVA:'java.util.Properties'
     D                                             :*CONSTRUCTOR)
     D                                     Class(*JAVA:'java.util.Properties')
     D prop                            O   Class(*java:'java.util.Properties')

     D getSysProp      PR              O   ExtProc(*JAVA:'java.lang.System'
     D                                     :'getProperties')
     D                                     STATIC
     D                                     Class(*java:'java.util.Properties')

     D propertyNames   PR              O   ExtProc(*JAVA:'java.util.Properties'
     D                                     :'propertyNames')
     D                                     Class(*java:'java.util.Enumeration')

     D getProperty     PR              O   ExtProc(*JAVA:'java.util.Properties'
     D                                     :'getProperty')
     D                                     Class(*java:'java.lang.String')
     D                                 O   Class(*java:'java.lang.String')

     D hasMoreElts     PR              N
     D                                     ExtProc(*JAVA:
     D                                             'java.util.Enumeration':
     D                                             'hasMoreElements')
     D nextElement     PR              O
     D                                     ExtProc(*JAVA:
     D                                             'java.util.Enumeration':
     D                                             'nextElement')
     D                                     Class(*java:
     D                                           'java.lang.Object')

     D objToString     PR              O
     D                                     ExtProc(*JAVA:
     D                                             'java.lang.Object':
     D                                             'toString')
     D                                     Class(*java:
     D                                           'java.lang.String')
     D
     D obj             S               O   Class(*java:'java.lang.Object')
     D p_String        S               O   Class(*java:'java.lang.String')
     D p_Value         S               O   Class(*java:'java.lang.String')
     D properties      S               O   Class(*java:'java.util.Properties')
     D enumeration     S               O   Class(*java:'java.util.Enumeration')
     D pname           S             35
     D pvalue          S             97

      /free

         properties  = getSysProp();
         enumeration = propertyNames(properties);
         Except Header;
         dow hasMoreElts(enumeration);
            obj    = nextElement(enumeration);
            p_string = objToString(obj);
            pname  = stringBytes(p_string);
            p_value = getProperty(properties : p_string);
            pvalue = stringBytes(p_value);
            Except Detail;
         enddo;
       //  dump;
         *InLr = *On;
      /end-free
      ****************************************************************
     OQSYSPRT   E            Header         1
     O                                           50 'Java System Properties'
     O          E            Detail         1
     O                       pname               35
     O                       pvalue             132


詳細資訊參照:WebSphere Development Studio ILE RPG Programmer's Guide
            



沒有留言: