Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Class 嵌套类的JNI签名?_Class_Nested_Java Native Interface_Signature - Fatal编程技术网

Class 嵌套类的JNI签名?

Class 嵌套类的JNI签名?,class,nested,java-native-interface,signature,Class,Nested,Java Native Interface,Signature,我正在尝试在WindowsXP上使用JNI,java版本: java版本“1.6.0_13” Java(TM)SE运行时环境(build 1.6.0_13-b03) Java热点(TM)客户端虚拟机(构建11.3-b02,混合模式,共享) 尝试获取嵌套类的jclass时 jclass c=env->FindClass(“A$B”); 断言(c) 第二行断言,同样的东西在Linux上运行正常,Java版本略有不同(1.5…IIRC) 我试过几种排列方式,比如 LA$B; A.B LA.B 但是没有

我正在尝试在WindowsXP上使用JNI,java版本:

java版本“1.6.0_13” Java(TM)SE运行时环境(build 1.6.0_13-b03) Java热点(TM)客户端虚拟机(构建11.3-b02,混合模式,共享)

尝试获取嵌套类的jclass时

jclass c=env->FindClass(“A$B”); 断言(c)

第二行断言,同样的东西在Linux上运行正常,Java版本略有不同(1.5…IIRC)

我试过几种排列方式,比如

LA$B; A.B LA.B

但是没有用

如有任何建议,将不胜感激


马丁

这个问题似乎在年内解决了

更新:Oracle移动了论坛,新位置为

以下是问题的解决方式:

好的,我终于找到问题了。嵌套的类被编译成一个单独的java类对象(一个$B.class)——这对于C/C++程序员来说有点出乎意料。我没有打包该文件,因此该类被报告为“未找到”。有趣的是,它在Linux上工作。谢谢你的帮助

我的另一个提示是:如果
FindClass
返回null,不要只是
assert
和猜测。至少调用
env->exceptiondescripe()
stderr
上获取堆栈跟踪。更好的方法是,使用
env->ExceptionOccurred()
检查抛出的Java异常,就像您调用的任何其他Java方法一样。

链接现在已失效。(非常感谢甲骨文!)你能总结一下是什么吗?