一段时间以来,我一直在试图找到答案,但我认为我的问题的一部分是我真的不知道如何表达我的问题。我知道jvm最终会在运行时执行java程序需要执行的所有系统调用,我的困惑在于java类告诉jvm这样做的基本方式。
以标准java库中的file类为例。据我所知,这被认为是在java中打开/创建文件的最基本api。但是,文件只是另一个类,对吗?所以理论上我应该能够从头开始编写我自己的文件类,而不使用预先存在的文件类,对吗?我该怎么做?告诉vm实际创建文件的file类中发生了什么?我查看了file类的源代码,它似乎调用了另一个名为vmfile的类,但是我找不到vmfile是什么的解释。当我查看vmfile源代码时,它只有没有定义的函数声明。
谢谢你的帮助。
1条答案
按热度按时间kfgdxczn1#
java本机接口(jni)是java类和操作系统之间的粘合剂。本机方法有一个“native”属性(在jls中查找)。