moin,
compeliert fehler frei, jdoch beim ausführen der exe kommt ein fehler :
" die anweisung in 0x00000000 verweist auf speicher in 0x00000000. der vorgang read konnte nicht durchgeführt werden."
:autsch:
Code:
#include "stdafx.h"
#include "jni.h"
#include "windows.h"
typedef jint (WINAPI* JNI_CREATEJAVAVM)(JavaVM **pvm, void ** penv, void *args);
int main(int argc, char* argv[])
{
JavaVMInitArgs vm_args;
JavaVMOption options[10];
JavaVM* jvm;
JNIEnv* env;
options[0].optionString = "-Djava.compiler=NONE";
options[1].optionString = "-Djava.class.path=D:/programme/eclipse/workspace/helloworld";
vm_args.version = JNI_VERSION_1_4;
vm_args.nOptions = 2;
vm_args.options = options;
vm_args.ignoreUnrecognized = false;
JNI_CREATEJAVAVM JNI_CreateJavaVM = 0;
HMODULE hLib = LoadLibrary((LPCWSTR)"E:\\c_progs\\nativ_c\\native_c\\jvm.dll");
JNI_CreateJavaVM = (JNI_CREATEJAVAVM) GetProcAddress(hLib, "JNI_CreateJavaVM");
long status = JNI_CreateJavaVM(&jvm, (void**) &env, &vm_args);
if (status != JNI_OK)
{
printf("Failed creating JVM. Error: %d\r\n", status);
}
else
{
printf("JVM created\r\n");
}
jclass cls = (*env).FindClass("HelloWorld");
if (cls == 0) {
fprintf(stderr, "Can't find Prog class\n");
}
jmethodID mid = (*env).GetStaticMethodID(cls, "main", "([Ljava/lang/String;)V");
if (mid == 0) {
fprintf(stderr, "Can't find Prog.main\n");
}
(*env).CallStaticVoidMethod(cls, mid, NULL);
(*jvm).DestroyJavaVM();
return 0;
}
" die anweisung in 0x00000000 verweist auf speicher in 0x00000000. der vorgang read konnte nicht durchgeführt werden."
:autsch: