Native方法如何在源代码内部工作而不在类内部加载本机库?

时间:2019-06-18 14:49:28

标签: java

我正在查看FileInputStream的源代码,我看到了许多本机方法签名,但是在源代码内的任何地方都找不到“ System.Load”。所以我的问题是那些本机方法如何在不加载本机库的情况下工作?我很努力,但找不到正确的答案

1 个答案:

答案 0 :(得分:-1)

根据Java Virtual Machine Specs 1.12,兼容的虚拟机必须

  

为Java SE Platform的类库的实现提供足够的支持。

编辑:

在规范中,没有任何内容说明必须在单独的库中完成实现。允许JVM不要将本机实现放在单独的库中,而应将其作为JVM代码本身的一部分。在那种情况下,代码应该加载哪个库?

我认为这里的假设是JVM负责在方法执行之前正确加载该方法,该库可以调用它而不必关心加载库等。

相反,自定义定义方法的本地实现由开发人员负责,因此他/她必须在调用该方法之前加载本地库。