問題が発生しています。私はVC++からJavaクラスを呼び出しています。 IDからJavaプログラムを実行するとうまく動作しますが、Tomcatにデプロイすると例外が発生し、デバッグを開始したときにclsにnullが返されることがわかりました。 FindClassでabosulteパスを指定してtomcatから呼び出すこともできます。このクラスもjarファイルにあります。JNIのtomcatからクラスを呼び出す際の問題
JNIEnv * envx = NULL;
JavaVM * vm = NULL;
env1-> GetJavaVM(& vm);
int status = vm-> AttachCurrentThread((void **)& envx、NULL);
jclass cls = envx-> FindClass( "/ org/software/initmethod/GetInitValue");
jmethodID mid = envx-> GetStaticMethodID(cls、 "onRegStateChanged"、 "(II)I");
if(mid==NULL)
{
return 0;
}
printf("In C\n");
envx->CallStaticIntMethod(cls,mid,s1,s2);
vm->DetachCurrentThread();
return 0;
コードをコピーして例外をください。 –
私はコードを貼り付けました。例外は「アクセス違反コード」であり、デバッグしたときにクラスがTomcatで見つからないため、クラスはnullを返します。 –