JZOS Batch启动程序 - 使用SYSIN DD *中的java源代码运行JCL作业

时间:2016-01-14 16:50:16

标签: java mainframe zos jcl

JOB描述:JVMLDM76库位于数据集WLM.ABC.DEF.LINKLIB.PDSE中。 JVMLDM76(加载模块)随附jzos批量启动工具包安装。

这是我的工作:

    //JHELLO JOB MSGLEVEL=(1,1),REGION=0M,CLASS=Q,MSGCLASS=A 
    /* NOTIFY=&SYSUID */                                     
    //JOMVS EXEC PGM=JVMLDM76,REGION=0M,TIME=NOLIMIT         
    //STEPLIB  DD DSN=WLM.ABC.DEF.LINKLIB.PDSE,DISP=SHR  
    //SYSIN    DD  *                                         
    /* program starts here */                                
    public class JHelloWorld                              
    {                                                     
        public static void main(String args[])              
        {                                                  
           System.out.println("Hello :)");                 
        }                                                  
    }                                                    
    //*                                                      
    //STDOUT   DD SYSOUT=*                                   
    //SYSPRINT DD SYSOUT=*                                   
    //STDERR   DD SYSOUT=*                                   
    //

错误:

  

未提供java类名称参数。 Jzos批处理启动程序失败,返回码= 101

查询:

  1. 我可以只将java程序作为类文件发送 JOMVS EXEC PGM = JVMLDM76,REGION = 0M,TIME = NOLIMIT,JAVACLS =你好?(这很好)

  2. 有没有办法将java源代码与jcl集成?我无法更改加载模块。它是加密的。

  3. 当我将java程序从工作站转移到主机(ascii传输模式)时,主程序中的特殊字符[](字符串args [])'正在消失。如果我在jcl中键入它,它工作正常。有人能说出理由吗?我已经看到了这个链接。但是,没有找到任何关于此的文档。 Is there a list of Special characters to be avoided in JCL/MVS Script variables

  4. 感谢您的关注,

1 个答案:

答案 0 :(得分:1)

Java不是解释性语言。需要将其编译为字节码* .class或* .jar文件,然后执行。要做你想做的事情,需要一个更复杂的批量启动器,如来自Dovetailed technologies https://dovetail.com/docs/coz/coz_index.html的Co:Z批次。 Dovetailed是JZOS的原作者。

//COZBATCH JOB CLASS=W,NOTIFY=&SYSUID                                  
//*                                                                    
//JOBLIB  DD DISP=SHR,DSN=COZ.LOADLIB                                  
//*                                                                    
//*====================================================================
//* Batch job to run the CoZLauncher.                                  
//*====================================================================
//RUNCOZ  EXEC PGM=COZBATCH                                            
//STDIN  DD *                                                          
cd /tmp                                                                
mkdir -p hello                                                         
cd hello                                                               
cat >HelloWorld.java <<EOF                                             
public class HelloWorld {                                              
   public static void main(String[] args) {                            
        System.out.println("Hello World!");                            
   }                                                                   
}                                                                      
EOF                                                                    
export JAVA_HOME=/usr/lpp/java/J7.1_64                                 
export PATH=$PATH:$JAVA_HOME/bin                                       
javac HelloWorld.java                                                  
java HelloWorld                              
/*