JNI FindClass java.lang.ClassNotFoundException - PullRequest
3 голосов
/ 23 января 2010

В настоящее время я пишу код JNI для вызова класса в моей программе JAVA. Я сделал это успешно уже с помощью статических методов в классе.

В настоящее время, когда я использую:

jclass proc_jclass = env->FindClass("example/io/struct/JavaClass");

Это сбивает JVM с:

java.lang.ClassNotFoundException.<init>(Ljava/lang/String;)V+3

Я уже пытался определить местоположение пути класса, но безрезультатно. Любая помощь будет принята с благодарностью.

Спасибо.

1 Ответ

4 голосов
/ 25 января 2010

Я нашел ответ сам. Проблема была решена путем перемещения FindClass непосредственно под метод JNIEXPORT. Как заявили bmargulies, это могло быть вызвано изменением указателя env. Переместив его в начало метода, этого удалось избежать. Глядя на код, все еще не ясно, что является причиной проблемы, но я плохо сообщаю, когда узнаю. Кроме того, в верхней подсказке используйте переменную, т. Е.

env->FindClass(str_class);

str_class использовался для определения ClassPath, чтобы вы могли быстро проверить, какие классы доступны без повторного соответствия. - Я знаю, это очевидно, но экономит время при отладке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...