JNI.cpy copybook
This listing shows the JNI.cpy copybook, which you can use to access the Java™ Native Interface (JNI) services from your COBOL programs.
JNI.cpy contains sample COBOL data definitions that correspond to the Java JNI types, and contains JNINativeInterface, the JNI environment structure that contains function pointers for accessing the JNI callable services.
JNI.cpy is in the z/OS® UNIX file system in the include subdirectory of the COBOL install directory (typically /usr/lpp/cobol/include). JNI.cpy is analogous to the header file jni.h that C programmers use to access the JNI.
*****************************************************************
* COBOL declarations for Java native method interoperation *
* *
* To use the Java Native Interface callable services from a *
* COBOL program: *
* 1) Use a COPY statement to include this file into the *
* the Linkage Section of the program, e.g. *
* Linkage Section. *
* Copy JNI *
* 2) Code the following statements at the beginning of the *
* Procedure Division: *
* Set address of JNIEnv to JNIEnvPtr *
* Set address of JNINativeInterface to JNIEnv *
*****************************************************************
*
* Sample JNI type definitions in COBOL
*
*01 jboolean1 pic X.
* 88 jboolean1-true value X'01' through X'FF'.
* 88 jboolean1-false value X'00'.
*
*01 jbyte1 pic X.
*
*01 jchar1 pic N usage national.
*
*01 jshort1 pic s9(4) comp-5.
*01 jint1 pic s9(9) comp-5.
*01 jlong1 pic s9(18) comp-5.
*
*01 jfloat1 comp-1.
*01 jdouble1 comp-2.
*
*01 jobject1 object reference.
*01 jclass1 object reference.
*01 jstring1 object reference jstring.
*01 jarray1 object reference jarray.
*
*01 jbooleanArray1 object reference jbooleanArray.
*01 jbyteArray1 object reference jbyteArray.
*01 jcharArray1 object reference jcharArray.
*01 jshortArray1 object reference jshortArray.
*01 jintArray1 object reference jintArray.
*01 jlongArray1 object reference jlongArray.
*01 floatArray1 object reference floatArray.
*01 jdoubleArray1 object reference jdoubleArray.
*01 jobjectArray1 object reference jobjectArray.
01 JNIenv pointer.
* JNI Native Method Interface - environment structure.
01 JNINativeInterface.
02 pointer.
02 pointer.
02 pointer.
02 pointer.
02 GetVersion function-pointer.
02 DefineClass function-pointer.
02 FindClass function-pointer.
02 FromReflectedMethod function-pointer.
02 FromReflectedField function-pointer.
02 ToReflectedMethod function-pointer.
02 GetSuperclass function-pointer.
02 IsAssignableFrom function-pointer.
02 ToReflectedField function-pointer.
02 Throw function-pointer.
02 ThrowNew function-pointer.
02 ExceptionOccurred function-pointer.
02 ExceptionDescribe function-pointer.
02 ExceptionClear function-pointer.
02 FatalError function-pointer.
02 PushLocalFrame function-pointer.
02 PopLocalFrame function-pointer.
02 NewGlobalRef function-pointer.
02 DeleteGlobalRef function-pointer.
02 DeleteLocalRef function-pointer.
02 IsSameObject function-pointer.
02 NewLocalRef function-pointer.
02 EnsureLocalCapacity function-pointer.
02 AllocObject function-pointer.
02 NewObject function-pointer.
02 NewObjectV function-pointer.
02 NewObjectA function-pointer.
02 GetObjectClass function-pointer.
02 IsInstanceOf function-pointer.
02 GetMethodID function-pointer.
02 CallObjectMethod function-pointer.
02 CallObjectMethodV function-pointer.
02 CallObjectMethodA function-pointer.
02 CallBooleanMethod function-pointer.
02 CallBooleanMethodV function-pointer.
02 CallBooleanMethodA function-pointer.
02 CallByteMethod function-pointer.
02 CallByteMethodV function-pointer.
02 CallByteMethodA function-pointer.
02 CallCharMethod function-pointer.
02 CallCharMethodV function-pointer.
02 CallCharMethodA function-pointer.
02 CallShortMethod function-pointer.
02 CallShortMethodV function-pointer.
02 CallShortMethodA function-pointer.
02 CallIntMethod function-pointer.
02 CallIntMethodV function-pointer.
02 CallIntMethodA function-pointer.
02 CallLongMethod function-pointer.
02 CallLongMethodV function-pointer.
02 CallLongMethodA function-pointer.
02 CallFloatMethod function-pointer.
02 CallFloatMethodV function-pointer.
02 CallFloatMethodA function-pointer.
02 CallDoubleMethod function-pointer.
02 CallDoubleMethodV function-pointer.
02 CallDoubleMethodA function-pointer.
02 CallVoidMethod function-pointer.
02 CallVoidMethodV function-pointer.
02 CallVoidMethodA function-pointer.
02 CallNonvirtualObjectMethod function-pointer.
02 CallNonvirtualObjectMethodV function-pointer.
02 CallNonvirtualObjectMethodA function-pointer.
02 CallNonvirtualBooleanMethod function-pointer.
02 CallNonvirtualBooleanMethodV function-pointer.
02 CallNonvirtualBooleanMethodA function-pointer.
02 CallNonvirtualByteMethod function-pointer.
02 CallNonvirtualByteMethodV function-pointer.
02 CallNonvirtualByteMethodA function-pointer.
02 CallNonvirtualCharMethod function-pointer.
02 CallNonvirtualCharMethodV function-pointer.
02 CallNonvirtualCharMethodA function-pointer.
02 CallNonvirtualShortMethod function-pointer.
02 CallNonvirtualShortMethodV function-pointer.
02 CallNonvirtualShortMethodA function-pointer.
02 CallNonvirtualIntMethod function-pointer.
02 CallNonvirtualIntMethodV function-pointer.
02 CallNonvirtualIntMethodA function-pointer.
02 CallNonvirtualLongMethod function-pointer.
02 CallNonvirtualLongMethodV function-pointer.
02 CallNonvirtualLongMethodA function-pointer.
02 CallNonvirtualFloatMethod function-pointer.
02 CallNonvirtualFloatMethodV function-pointer.
02 CallNonvirtualFloatMethodA function-pointer.
02 CallNonvirtualDoubleMethod function-pointer.
02 CallNonvirtualDoubleMethodV function-pointer.
02 CallNonvirtualDoubleMethodA function-pointer.
02 CallNonvirtualVoidMethod function-pointer.
02 CallNonvirtualVoidMethodV function-pointer.
02 CallNonvirtualVoidMethodA function-pointer.
02 GetFieldID function-pointer.
02 GetObjectField function-pointer.
02 GetBooleanField function-pointer.
02 GetByteField function-pointer.
02 GetCharField function-pointer.
02 GetShortField function-pointer.
02 GetIntField function-pointer.
02 GetLongField function-pointer.
02 GetFloatField function-pointer.
02 GetDoubleField function-pointer.
02 SetObjectField function-pointer.
02 SetBooleanField function-pointer.
02 SetByteField function-pointer.
02 SetCharField function-pointer.
02 SetShortField function-pointer.
02 SetIntField function-pointer.
02 SetLongField function-pointer.
02 SetFloatField function-pointer.
02 SetDoubleField function-pointer.
02 GetStaticMethodID function-pointer.
02 CallStaticObjectMethod function-pointer.
02 CallStaticObjectMethodV function-pointer.
02 CallStaticObjectMethodA function-pointer.
02 CallStaticBooleanMethod function-pointer.
02 CallStaticBooleanMethodV function-pointer.
02 CallStaticBooleanMethodA function-pointer.
02 CallStaticByteMethod function-pointer.
02 CallStaticByteMethodV function-pointer.
02 CallStaticByteMethodA function-pointer.
02 CallStaticCharMethod function-pointer.
02 CallStaticCharMethodV function-pointer.
02 CallStaticCharMethodA function-pointer.
02 CallStaticShortMethod function-pointer.
02 CallStaticShortMethodV function-pointer.
02 CallStaticShortMethodA function-pointer.
02 CallStaticIntMethod function-pointer.
02 CallStaticIntMethodV function-pointer.
02 CallStaticIntMethodA function-pointer.
02 CallStaticLongMethod function-pointer.
02 CallStaticLongMethodV function-pointer.
02 CallStaticLongMethodA function-pointer.
02 CallStaticFloatMethod function-pointer.
02 CallStaticFloatMethodV function-pointer.
02 CallStaticFloatMethodA function-pointer.
02 CallStaticDoubleMethod function-pointer.
02 CallStaticDoubleMethodV function-pointer.
02 CallStaticDoubleMethodA function-pointer.
02 CallStaticVoidMethod function-pointer.
02 CallStaticVoidMethodV function-pointer.
02 CallStaticVoidMethodA function-pointer.
02 GetStaticFieldID function-pointer.
02 GetStaticObjectField function-pointer.
02 GetStaticBooleanField function-pointer.
02 GetStaticByteField function-pointer.
02 GetStaticCharField function-pointer.
02 GetStaticShortField function-pointer.
02 GetStaticIntField function-pointer.
02 GetStaticLongField function-pointer.
02 GetStaticFloatField function-pointer.
02 GetStaticDoubleField function-pointer.
02 SetStaticObjectField function-pointer.
02 SetStaticBooleanField function-pointer.
02 SetStaticByteField function-pointer.
02 SetStaticCharField function-pointer.
02 SetStaticShortField function-pointer.
02 SetStaticIntField function-pointer.
02 SetStaticLongField function-pointer.
02 SetStaticFloatField function-pointer.
02 SetStaticDoubleField function-pointer.
02 NewString function-pointer.
02 GetStringLength function-pointer.
02 GetStringChars function-pointer.
02 ReleaseStringChars function-pointer.
02 NewStringUTF function-pointer.
02 GetStringUTFLength function-pointer.
02 GetStringUTFChars function-pointer.
02 ReleaseStringUTFChars function-pointer.
02 GetArrayLength function-pointer.
02 NewObjectArray function-pointer.
02 GetObjectArrayElement function-pointer.
02 SetObjectArrayElement function-pointer.
02 NewBooleanArray function-pointer.
02 NewByteArray function-pointer.
02 NewCharArray function-pointer.
02 NewShortArray function-pointer.
02 NewIntArray function-pointer.
02 NewLongArray function-pointer.
02 NewFloatArray function-pointer.
02 NewDoubleArray function-pointer.
02 GetBooleanArrayElements function-pointer.
02 GetByteArrayElements function-pointer.
02 GetCharArrayElements function-pointer.
02 GetShortArrayElements function-pointer.
02 GetIntArrayElements function-pointer.
02 GetLongArrayElements function-pointer.
02 GetFloatArrayElements function-pointer.
02 GetDoubleArrayElements function-pointer.
02 ReleaseBooleanArrayElements function-pointer.
02 ReleaseByteArrayElements function-pointer.
02 ReleaseCharArrayElements function-pointer.
02 ReleaseShortArrayElements function-pointer.
02 ReleaseIntArrayElements function-pointer.
02 ReleaseLongArrayElements function-pointer.
02 ReleaseFloatArrayElements function-pointer.
02 ReleaseDoubleArrayElements function-pointer.
02 GetBooleanArrayRegion function-pointer.
02 GetByteArrayRegion function-pointer.
02 GetCharArrayRegion function-pointer.
02 GetShortArrayRegion function-pointer.
02 GetIntArrayRegion function-pointer.
02 GetLongArrayRegion function-pointer.
02 GetFloatArrayRegion function-pointer.
02 GetDoubleArrayRegion function-pointer.
02 SetBooleanArrayRegion function-pointer.
02 SetByteArrayRegion function-pointer.
02 SetCharArrayRegion function-pointer.
02 SetShortArrayRegion function-pointer.
02 SetIntArrayRegion function-pointer.
02 SetLongArrayRegion function-pointer.
02 SetFloatArrayRegion function-pointer.
02 SetDoubleArrayRegion function-pointer.
02 RegisterNatives function-pointer.
02 UnregisterNatives function-pointer.
02 MonitorEnter function-pointer.
02 MonitorExit function-pointer.
02 GetJavaVM function-pointer.
02 GetStringRegion function-pointer.
02 GetStringUTFRegion function-pointer.
02 GetPrimitiveArrayCritical function-pointer.
02 ReleasePrimitiveArrayCritical function-pointer.
02 GetStringCritical function-pointer.
02 ReleaseStringCritical function-pointer.
02 NewWeakGlobalRef function-pointer.
02 DeleteWeakGlobalRef function-pointer.
02 ExceptionCheck function-pointer.