1

是否有可能通过 java 本机接口违反 java 安全策略。哪些是我们必须使用 JNI 的主要领域

4

2 回答 2

4

Java 的安全策略根本不适用于通过 JNI 调用的本机代码,因此显然本机代码可以随意违反它们。

至于我们用什么 JNI,现在主要是调用特定操作系统的 API 或与现有的非 Java 代码接口。提高性能曾经是一个经常被引用的原因,但考虑到当今 VM 和 JIT 编译器的状态,这几乎没有任何意义。

于 2009-08-24T10:47:17.060 回答
1

是的,一旦您通过 JNI 调用本机代码,它几乎可以执行当前用户允许执行的任何操作 - 例如删除他们的所有文件。Java 系统无法监管本机代码所做的任何事情。

您不必JNI 用于任何事情——它通常用于例如低级访问(例如,对可移动驱动器的严重错误处理)或访问没有纯 Java 等效项的 C API。

于 2009-08-24T10:44:58.220 回答