【发布时间】:2015-12-25 08:03:17
【问题描述】:
我使用 Java 已经有一段时间了,现在我开始使用本机方法和 JNI。我认为没有本机功能的 Java 可以只管理它的内存(创建类和字段并将数据从一种方法传递到另一种方法,并声明原始类型),但所有的东西,如线程管理、数据 I/O 及其东西和更多类似的东西多亏了本机方法。
现在我知道本机方法(例如:线程启动被声明为 private native void start0(); 启动一个新线程)具有相应的库(我不确定但应该)直接与 JVM 实例或其他系统库(OpenGL以这种方式通信)。
上面的文字是真的还是有更多的事情发生?还有一个问题,这些库(API 的本机方法使用)在哪里加载?我知道您需要使用自定义本机方法加载库。 API 这样做还是由 JVM 自动完成?
【问题讨论】:
-
这对于 StackOverflow 来说确实是一个太宽泛的话题,并且也接近于“离题,因为它是对外部资源的请求”。最好的资源是阅读JVM Specification。
-
是的,我知道,但这里有一些人可能已经处理了更长的时间。而且我也看过规范。但是解释了 jvm 如何处理本地方法而不是显示库和 java API 的结构
标签: java jvm java-native-interface