HP-UX Programmer's Guide for Java 2

Table Of Contents
int main()
{
JNIEnv *env;
JavaVM *jvm;
JNIEnv jni;
JavaVM vmi;
JavaVMInitArgs vm_args;
JavaVMOption options[4];
jint res;
printf("beginning execution...\n");
/*
* User-defined classes
options[0].optionString = (char *) \
"-Djava.class.path=.";
vm_args.version = JNI_VERSION_1_2;
vm_args.options = options;
vm_args.nOptions = 1;
vm_args.ignoreUnrecognized = JNI_FALSE;
/*
* The CLASSPATH environment variable does not
* set the classpath for JNI applications that
* have a native main program. This behavior
* is consistent with the JavaSoft reference platform.
*/
/*
* load and initialize a java vm,
* return a JNI interface ptr in env
*/
res = JNI_CreateJavaVM(&jvm,(void **)&env,&vm_args);
if (res != 0) {
printf("JNI_CreateJavaVM failed. %d\n", res);
exit(1);
}
jni = *env;
vmi = *jvm;
// Find the class
jclass cls = jni->FindClass(env, "TestNonJavaCallingJava2");
if (cls == 0) {
printf("Could not locate class NonJavaCallingJava2");
exit(1);
}
// Find the method
jmethodID mid = jni->GetStaticMethodID(env, cls, "printInt", "(I)V");
if (mid == 0) {
printf("Could not locate method printInt with signature (I)V");
exit(1);
}
// Invoke the method
jni->CallStaticVoidMethod(env, cls, mid, 100);
// we are done
vmi->DestroyJavaVM(jvm);
}
Compile the C source file:
54 Using Java™ 2 JNI on HP-UX