Professional Documents
Culture Documents
Procedure Division.
DISPLAY "COBOL PROGRAM tstDoor ENTERED"
INVOKE Door "doSomething"
DISPLAY "RETURNED FROM JAVA Door TO tstDoor
GOBACK.
END PROGRAM "tstDoor".
Defining a Cobol Class
Identification division
Factory definition
Identification division
Data division
Procedure division (containing one or more method
definitions)
Object definition
Identification division
Data division
Procedure division (containing one or more method
definitions)
Creating a Java Class in UNIX
1) Use TSO OMVS to move to UNIX
2) Build a directory for the class (cd, mkdir)
3) Save an env file in the Directory (see
env panel that follows)
4) Use TSO OEDIT to create a .java file in
the directory
5) Compile the .java file with javac. Make
sure you allocate enough space when
you sign on to TSO
Door.java
public class Door
{
private String state;
public Door()
{
System.out.println("building a closed door...");
state = "closed";
}
public Door(String s)
{
System.out.println("building the door...");
if (s.equals("open"))
{
state = "open";
}
else
{
state = "closed";
}
}
Door.java
public void open()
{
System.out.println("About to open the door...");
if (state.equals("open"))
{
System.out.println("The door is already open.");
}
else
{
state = "open";
}
}
public void close()
{
System.out.println("About to close the door...");
if (state.equals("closed"))
{
Door.java
System.out.println("The door is already closed.");
}
else
{
state = "closed";
}
}
public String toString()
{
return "The door is " + state + ".";
}
public static void doSomething()
{
System.out.println("I did something.");
}
public void print()
{
System.out.println("The door is " + state + ".");
}
}
An env File
PATH=/bin:/u/Java5_31/J5.0/bin.
LIBPATH=/lib:/usr/lib:/u/Java5_31/J5.0/bin:/u/Java5_
31/J5.0/bin/j9vm
CLASSPATH=/u/csup004/Door
Procedure Division.
DISPLAY "COBOL PROGRAM tstDoor ENTERED"
INVOKE Door "doSomething"
DISPLAY "RETURNED FROM JAVA Door TO tstDoor"
Compile, Link, Run JCL
DISPLAY "RETURNED FROM JAVA Door TO tstDoor"
GOBACK.
END PROGRAM "tstDoor".
/*
//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
//SYSTERM DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SYSLMOD DD DSN=&&GOSET(TSTDOOR),DISP=(MOD,PASS),
// UNIT=SYSALLDA,SPACE=(CYL,(1,1,1)),DSNTYPE=LIBRARY
//SYSDEFSD DD DUMMY
//OBJMOD DD DSN=&&OBJECT,DISP=(OLD,DELETE)
//SYSLIN DD *
INCLUDE OBJMOD(TSTDOOR)
INCLUDE '/u/Java5_31/J5.0/bin/j9vm/libjvm.x'
INCLUDE '/usr/lpp/cobol/lib/igzcjava.x'
/*
Compile, Link, Run JCL
//GO EXEC PGM=TSTDOOR,
// PARM='/ENVAR("_CEE_ENVFILE=/u/csup004/env")XPLINK(ON)
// POSIX(ON)'
//* POSIX(ON)'
//*STEPLIB DD DSN=CSUP004.LOAD,DISP=SHR
//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/csup004/javaout',
// PATHOPTS=(OWRONLY,OCREAT,OTRUNC),
// PATHMODE=(SIRUSR,SIWUSR,SIRGRP)
//
Sample Compile, Link, Run JCL
CSU.PUBLIC.OO(OOMAIN1) OR
CSU.PUBLIC.OO(CJSTATIC)
INVOKE
INVOKE NEW
Use INVOKE class NEW to instantiate
an object
The returned reference must be saved in
an object reference variable
01 myObj object reference DOOR.