Ok,
ehrlich gesagt wundert es mich, dass der von dir gepostete C Code so überhaupt laufen sollte.
Ich hab mal die Datei etwas abgeändert (bei mir fehlten 2 schließende Blöcke und die vmArgs müssen vom Typ JvmInitArgs sein).
Code:
#include <stdio.h>
#include "jni.h"
int main()
{
JavaVMOption options[1];
JNIEnv *env;
JavaVM *jvm;
JavaVMInitArgs vm_args;
long status;
jclass
cls;
jmethodID mid;
jint square;
jboolean not;
options[0].optionString="-Djava.class.path=.";
memset(&vm_args, 0, sizeof(vm_args));
vm_args.version = JNI_VERSION_1_2;
vm_args.nOptions = 1;
vm_args.options = options;
status = JNI_CreateJavaVM(&jvm,(void**)&env,&vm_args);
if (status != JNI_ERR)
{
cls = (*env)->FindClass(env, "HelloWorld");
if (
cls != 0)
{mid = (*env)->GetStaticMethodID(env,
cls,"Test","(I)I");}
if (mid != 0)
{square = (*env)->CallStaticIntMethod(env,
cls,mid,5); }
printf("Result of int Method:%d\n", square);
(*jvm)->DestroyJavaVM(jvm);
return 0;
}
else
return -1;
}
Das ganze hab ich dann durch den Borland C Compiler gejagt :
Code:
bcc32 -I"C:\Programme\Java\jdk1.5.0_08\include" -I"C:\Programme\Java\jdk1.5.0_08\include\
win32" "Blubb.c"
Und das compiliert ohne Probleme. Gelinkt habe ich den Code jetzt zwar nicht, aber ich denke mal die Probleme hattest du auch schon beim Compilieren?