To use the Java and COBOL from within separate projects, see Java calling COBOL and accessing COBOL working-storage (separate projects).
The Properties for <project-name> dialog box appears.
Other settings are required for this example, such as the Java Interoperability Output Path set to src, and the project being built to a single native library file, but these are the default settings and so are already set.
The program is opened in the editor.
$set nsymbol(national) >>JAVA-CALLABLE program-id. demo4 as "demo4". working-storage section. >>JAVA-SHAREABLE ON 01 Int1 pic 9(9) comp-5 value 10. 01 Alpha1 pic x(100) value "Pink". 01 Group1. 03 colour1 pic x(10) occurs 10 value "Red" "Green" "Blue". 01 Num1 pic S9(5)v9(5) comp-3 value 3141.59265. 01 Nat1 pic n(20) value n"Unicode" national. >>JAVA-SHAREABLE OFF 01 ed-num1 pic +9(5).9(5). procedure division. display "--In COBOL Program demo4--" display "Int1= " Int1 display "Alpha1= " Alpha1 display "colour1(1)= "colour1(1) display "colour1(2)= "colour1(2) display "colour1(3)= "colour1(3) move num1 to ed-num1 display "Num1= " ed-num1 display "Nat1= " Nat1 goback. end program demo4.
If your workspace is set to build automatically, the program is compiled. If the workspace is not set to build automatically, on the Project menu, click Build Project.
The program is opened in the editor.
$set nsymbol(national) >>JAVA-CALLABLE program-id. demo5 as "demo5". working-storage section. >>JAVA-SHAREABLE ON 01 Group1. 03 Group2. 05 item1 pic x(10) value "Purple". 05 Group3. 07 item2 pic x(10) value "Green". >>JAVA-SHAREABLE OFF 01 3item pic 9(10). procedure division. display "--In COBOL Program demo5--" display "Item1= " item1 display "Item2= " item2 goback. end program demo5.If your workspace is set to build automatically, the program is compiled. If the workspace is not set to build automatically, on the Project menu, click Build Project.
The program is opened in the editor.
package com.mycompany.demo4; import java.math.BigDecimal; public class Demo4 { public static void main(String[] args) { System.out.println("--Java--"); int i = strg.demo4.Int1.get(); System.out.println("Int1= " + i); strg.demo4.Int1.put(10201); String s = strg.demo4.Alpha1.get(); System.out.println("Alpha1= " + s); strg.demo4.Alpha1.put("Purple"); strg.demo4.Group1.colour1[2].put("Yellow"); strg.demo4.Group1.colour1[3].put("Cyan"); BigDecimal num1 = strg.demo4.Num1.get(); System.out.println("Num1= " + num1); strg.demo4.Num1.put(new BigDecimal("1579.1113")); String n = strg.demo4.Nat1.get(); System.out.println("Nat1= " + n); strg.demo4.Nat1.put("abcdeFGHIJ"); String i1 = strg.demo5.Group1.Group2.item1.get(); System.out.println("Item1= " + i1); strg.demo5.Group1.Group2.item1.put("Orange"); String i2 = strg.demo5.Group1.Group2.Group3.item2.get(); System.out.println("Item1= " + i2); strg.demo5.Group1.Group2.Group3.item2.put("Yellow"); progs.demo4(); progs.demo5(); } }
If your workspace is set to build automatically, the program is compiled. If the workspace is not set to build automatically, on the Project menu, click Build Project.
A new configuration is displayed in the right-hand pane.
-Djava.library.path=<path-to-COBOL-output-folder>
replacing <path-to-COBOL-output-folder> with the full path name to the COBOL project's output folder.
--Java-- Int1= 10 Alpha1= Pink Num1= 3141.59265 Nat1= Unicode Item1= Purple Item1= Green --In COBOL Program demo4-- Int1= 0000010201 Alpha1= Purple colour1(1)= Red colour1(2)= Green colour1(3)= Yellow Num1= +01579.11130 Nat1= abcdeFGHIJ --In COBOL Program demo5-- Item1= Orange Item2= Yellow
The code and the output show the Java program accessing the working-storage data in the COBOL programs, even declaring Java variables using the values of the COBOL items. The Java code also calls both of the COBOL programs.