To use the Java and COBOL from within the same project, see Java calling COBOL and accessing COBOL working-storage (COBOL/Java Interoperability project).
The Create a Java Project wizard is displayed.
If you are prompted to open the Java perspective, select No. The JCallShare project is created. To show both COBOL and Java projects, select the COBOL Explorer view, click (View menu), and then click Filters and Customization. This opens the Filters and Customization dialog box. Click the Pre-set filters tab and uncheck Non-Micro Focus projects, and then click OK.
The program is opened in the editor.
package com.microfocus.java; import 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. At this point, there will be errors because the COBOL program does not yet exist. These will be resolved during the following steps.
The COBOL Project wizard is displayed.
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.
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.
The Properties for CCallShare dialog box appears.
The Link settings are displayed.
Windows:
Option | Value |
---|---|
Target type | Single Native Library File |
UNIX:
Option | Value |
---|---|
Output name | prefix the current value with 'lib' |
Target type | Single Native Library File |
Callable by non-COBOL applications | Yes |
Multi-threaded | Yes |
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 two projects should now build without any errors.
The Create, manage, and run configurations dialog box is displayed.
A new configuration is displayed.
By default, the executable (genjava) is in the bin sub-folder of the product installation folder.
<COBOL-Output-Name> -p demo4 demo5 -s demo4 demo5 -k com.mycompany.demo4
Refresh the src folder in JCallShare again and progs.java and strg.java files have been added.
The Run Configurations dialog box is displayed.
A new configuration is displayed in the right-hand pane.
-Djava.library.path=<path-to-COBOL-project-output-folder>
replacing <path-to-COBOL-project-output-folder> with the full path name to the CCallShare 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 shows the Java program passing two arguments into the COBOL program, which are processed and displayed from the COBOL. The COBOL program also returns a value, which is then processed in the Java program.