Hug*_*ugh 3 java-native-interface
我目前正在编写一些JNI代码来调用我的JAVA程序中的类。我已经使用类中的静态方法成功完成了此操作。
目前,当我使用时:
jclass proc_jclass = env->FindClass("example/io/struct/JavaClass");
Run Code Online (Sandbox Code Playgroud)
它使JVM崩溃:
java.lang.ClassNotFoundException.<init>(Ljava/lang/String;)V+3
Run Code Online (Sandbox Code Playgroud)
我已经尝试定义类路径位置,但无济于事。任何帮助将不胜感激。
谢谢。
我自己找到了答案。通过将FindClass移到JNIEXPORT方法的正下方可以解决此问题。如bmargulies所述,它可能是由于env指针被修改引起的。通过将其移至方法的顶部,可以避免这种情况。查看代码,仍然不清楚是什么引起了问题,但是当我发现问题时,报告错误。另外,顶端提示使用变量,即:
env->FindClass(str_class);
Run Code Online (Sandbox Code Playgroud)
str_class用于定义ClassPath,以便您可以快速测试哪些类可访问而无需重新编译。-我知道它很明显,但是在调试时确实节省了时间。
| 归档时间: |
|
| 查看次数: |
8672 次 |
| 最近记录: |