Preparing OO applications under z/OS UNIX

Use the cob2 command to link OO COBOL applications.

To prepare an OO COBOL client program for execution, link the object file with the following two DLL side files to create an executable module:

  • libjvm.x, which is provided with your IBM® Java™ Software Development Kit.
  • Start of changeigzcjava.x, which is provided in the lib subdirectory of the COBOL install directory in the z/OS UNIX file system. This DLL side file is also available as the member IGZCJAVA in the SCEELIB PDS (part of Language Environment®).End of change

To prepare a COBOL class definition for execution:

  1. Link the object file using the two DLL side files mentioned above to create an executable DLL module.

    You must name the resulting DLL module libClassname.so, where Classname is the external class-name. If the class is part of a package and thus there are periods in the external class-name, you must change the periods to underscores in the DLL module name. For example, if class Account is part of the com.acme package, the external class-name (as defined in the REPOSITORY paragraph entry for the class) must be com.acme.Account, and the DLL module for the class must be libcom_acme_Account.so.

  2. Compile the generated Java source with the Java compiler to create a class file (.class).

For a COBOL source file Classname.cbl that contains the class definition for Classname, you would use the following commands to compile and link the components of the application:

Table 1. Commands for compiling and linking a class definition
Command Input Output
cob2 -c -qdll,thread Classname.cbl Classname.cbl Classname.o, Classname.java
cob2 -bdll -o libClassname.so Classname.o
/usr/lpp/java/IBM/J8.0/bin/j9vm/libjvm.x
/usr/lpp/cobol/igyv6r4/lib/igzcjava.x
Classname.o libClassname.so
javac Classname.java Classname.java Classname.class

After you issue the cob2 and javac commands successfully, you have the executable components for the program: the executable DLL module libClassname.so and the class file Classname.class. All files from these commands are generated in the current working directory.

Example: compiling and linking a COBOL class definition under z/OS UNIX