Rational Developer for System z
Enterprise COBOL for z/OS, Version 4.1, Programming Guide


Example: compiling, linking, and running an OO application using JCL

This example shows the JCL that you could use to compile, link, and run a COBOL client that invokes a Java method.

The example shows:

JCL for program TSTHELLO

//TSTHELLO JOB ,
//  TIME=(1),MSGLEVEL=(1,1),MSGCLASS=H,CLASS=A,REGION=100M,
//  NOTIFY=&SYSUID,USER=&SYSUID
//*
// SET COBPRFX='IGY.V4R1M0'
// SET LIBPRFX='CEE'
//*
//COMPILE EXEC PGM=IGYCRCTL,
// PARM='SIZE(5000K)'
//SYSLIN   DD DSNAME=&&OBJECT(TSTHELLO),UNIT=VIO,DISP=(NEW,PASS),
//            SPACE=(CYL,(1,1,1))
//SYSPRINT DD SYSOUT=*
//STEPLIB  DD DSN=&COBPRFX..SIGYCOMP,DISP=SHR
//         DD DSN=&LIBPRFX..SCEERUN,DISP=SHR
//SYSUT1   DD UNIT=VIO,SPACE=(CYL,(1,1))
//SYSUT2   DD UNIT=VIO,SPACE=(CYL,(1,1))
//SYSUT3   DD UNIT=VIO,SPACE=(CYL,(1,1))
//SYSUT4   DD UNIT=VIO,SPACE=(CYL,(1,1))
//SYSUT5   DD UNIT=VIO,SPACE=(CYL,(1,1))
//SYSUT6   DD UNIT=VIO,SPACE=(CYL,(1,1))
//SYSUT7   DD UNIT=VIO,SPACE=(CYL,(1,1))
//SYSIN    DD *
       cbl dll,thread
       Identification division.
       Program-id. "TSTHELLO" recursive.
       Environment division.
       Configuration section.
       Repository.
           Class HelloJ is "HelloJ".
       Data Division.
       Procedure division.
           Display "COBOL program TSTHELLO entered"
           Invoke HelloJ "sayHello"
           Display "Returned from java sayHello to TSTHELLO"
           Goback.
       End program "TSTHELLO".
/*
//LKED EXEC PGM=IEWL,PARM='RENT,LIST,LET,DYNAM(DLL),CASE(MIXED)'
//SYSLIB   DD DSN=&LIBPRFX..SCEELKED,DISP=SHR
//         DD DSN=&LIBPRFX..SCEELKEX,DISP=SHR
//SYSPRINT DD SYSOUT=*
//SYSTERM  DD SYSOUT=*
//SYSLMOD  DD DSN=&&GOSET(TSTHELLO),DISP=(MOD,PASS),UNIT=VIO,
//            SPACE=(CYL,(1,1,1)),DSNTYPE=LIBRARY
//SYSDEFSD DD DUMMY
//OBJMOD   DD DSN=&&OBJECT,DISP=(OLD,DELETE)
//SYSLIN   DD *
  INCLUDE OBJMOD(TSTHELLO)
  INCLUDE '/usr/lpp/java/IBM/J1.3/bin/classic/libjvm.x'
  INCLUDE '/usr/lpp/cobol/lib/igzcjava.x'
/*
//GO EXEC PGM=TSTHELLO,COND=(4,LT,LKED),
//         PARM='/ENVAR("_CEE_ENVFILE=/u/userid/ootest/tsthello/ENV")
//             POSIX(ON)'
//STEPLIB  DD DSN=*.LKED.SYSLMOD,DISP=SHR
//         DD DSN=&LIBPRFX..SCEERUN2,DISP=SHR
//         DD DSN=&LIBPRFX..SCEERUN,DISP=SHR
//SYSOUT   DD SYSOUT=*
//CEEDUMP  DD SYSOUT=*
//SYSUDUMP DD DUMMY
//JAVAOUT  DD PATH='/u/userid/ootest/tsthello/javaout',
// PATHOPTS=(OWRONLY,OCREAT,OTRUNC),
// PATHMODE=(SIRUSR,SIWUSR,SIRGRP)

Definition of class HelloJ

class HelloJ {
   public static void sayHello() {
     System.out.println("Hello World, from Java!");
   }
}

HelloJ.java is compiled with the javac command. The resulting .class file resides in the HFS directory u/userid/ootest/tsthello, which is specified in the CLASSPATH environment variable in the environment variable settings file.

Environment variable settings file, ENV

PATH=/bin:/usr/lpp/java/IBM/J1.3/bin:.
LIBPATH=/lib:/usr/lib:/usr/lpp/java/IBM/J1.3/bin:
   /usr/lpp/java/IBM/J1.3/bin/classic:/u/userid/ootest/tsthello
CLASSPATH=/u/userid/ootest/tsthello

(The LIBPATH setting is shown above on two lines because of document length limitations, but you must specify the setting on one unbroken line that has no internal blanks.)

The environment variable settings file also resides in directory u/userid/ootest/tsthello, as specified in the _CEE_ENVFILE environment variable in the JCL.


Terms of use | Feedback

This information center is powered by Eclipse technology. (http://www.eclipse.org)