Quantcast
Channel: Visual COBOL
Viewing all articles
Browse latest Browse all 5819

Forum Post: RE: Calling a java library from legacy cobol with VC2.1

$
0
0
Chris, It should be possible to call a java class from native gnt cobol using the JNI interface. But how to proceed using JNI_CreateJavaVM ? Is there a way to do in cobol something like the following in C : #include stdio.h #include jni.h JNIEnv* create_vm() {   JavaVM* jvm;   JNIEnv* env;   JavaVMInitArgs args;   JavaVMOption options[1];   /* There is a new JNI_VERSION_1_4, but it doesn't add anything for the purposes of our example. */   args.version = JNI_VERSION_1_2;   args.nOptions = 1;   options[0].optionString = "-Djava.class.path=c:\\projects\\local\\inonit\\classes";   args.options = options;   args.ignoreUnrecognized = JNI_FALSE;   JNI_CreateJavaVM(&jvm, (void **)&env, &args);   return env; } void invoke_class(JNIEnv* env) {   jclass helloWorldClass;   jmethodID mainMethod;   jobjectArray applicationArgs;   jstring applicationArg0;   helloWorldClass = (*env)- FindClass(env, "example/jni/InvocationHelloWorld");   mainMethod = (*env)- GetStaticMethodID(env, helloWorldClass, "main", "([Ljava/lang/String;)V");   applicationArgs = (*env)- NewObjectArray(env, 1, (*env)- FindClass(env, "java/lang/String"), NULL);   applicationArg0 = (*env)- NewStringUTF(env, "From-C-program");   (*env)- SetObjectArrayElement(env, applicationArgs, 0, applicationArg0);   (*env)- CallStaticVoidMethod(env, helloWorldClass, mainMethod, applicationArgs); } int main(int argc, char **argv) {   JNIEnv* env = create_vm();   invoke_class( env ); } We would like to invoke one java class from a native cobol program and I think it can be a simple solution to write and test the java on one side, and then call it from our cobol program. Kind regards.

Viewing all articles
Browse latest Browse all 5819

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>