gpt4 book ai didi

java - jni入门问题

转载 作者:搜寻专家 更新时间:2023-10-31 20:15:46 28 4
gpt4 key购买 nike


我开始研究 JNI,据我了解,如果加载的 dll 出现问题,jvm 可能会当场终止。
IE。该过程无法得到保护,例如就像捕获异常时一样。
所以如果我的理解是正确的,我的问题是在使用 jni 时是否有针对这种情况的标准方法/模式。
或者换句话说,使用 jni 的进程是否旨在避免这些问题?或者预计不会出现此类问题?

谢谢。

最佳答案

是的,JVM 将终止,这是 JNI 代码很难调试的原因之一。如果您使用的是 C++ 代码,则可以使用异常,然后将它们映射到 Java 异常,这至少为您提供了一定程度的安全性,但对诸如错误的内存访问等问题没有帮助。

从架构的角度来看,我建议尽可能将您的代码与 JNI 分离。创建一个完全可从 C++/C 测试的类/过程结构,并让 JNI 代码仅执行所有转换工作。如果 JVM 然后崩溃,您至少知道必须查看的位置。

关于java - jni入门问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4961917/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com