the IRS uses JCL for all it's production jobs, Java is no exception the IRS has a number of tools to change the JCL before each run substituting the current file names for the current run so... JCLPlay4 is the closest to production support we see //USER900D JOB (),CLASS=A,MSGLEVEL=(1,1),MSGCLASS=D,NOTIFY=&SYSUID, // REGION=0M //******************************************************************** //* Run Java under a UNIX System Service shell //******************************************************************** //JAVA EXEC PGM=BPXBATSL, // PARM='PGM /usr/lpp/java/J8.0/bin/java org.example.mainframe.play.samx // ple.JCLPlay4Appl' //INFILE DD PATH='/u/jearl/data/population.csv', <- this is an input file used by the Java code // PATHOPTS=ORDONLY //PROPS DD * <- this is my "properties" for the current run chunksize=100 years.to.process=1971,1972,1980,1990 /* //DATA DD * <- this is a second input file, inline within the JCL China Kyrgyz Republic Philippines Qatar Sweden Zimbabwe /* //FILEOUT DD DSNAME='USER900.POP.RESULTS',DISP=SHR <- this is an output file used by the Java code //STDIN DD DUMMY //STDOUT DD PATH='/u/user900/jclplay4.out', // PATHOPTS=(OWRONLY,OCREAT,OTRUNC), // PATHMODE=SIRWXU //STDERR DD PATH='/u/user900/jclplay4.err', // PATHOPTS=(OWRONLY,OCREAT,OTRUNC), // PATHMODE=SIRWXU //STDENV DD * CLASSPATH=/u/user900/JCLPlay4.jar:/u/jearl/jars/* JAVA_HOME=/usr/lpp/java/J8.0_64 PATH=/usr/lpp/java/J8.0_64/bin /* // this Java code reads a large population file, extract specific country data for specific years and create a report