Java 标准 API 中的 类 如何与 OS 交互?

How do classes in the Java standard API interact with the OS?

一段时间以来我一直在努力寻找这个问题的答案,但我认为我的部分问题是我真的不知道如何表达我的问题。我知道 JVM 最终会在 Java 程序需要进行的 运行 时间执行所有系统调用,我的困惑是 Java classes 的基本方式告诉 JVM 这样做。

以标准 Java 库中的文件 class 为例。据我所知,这被认为是 Java 中 opening/creating 个文件的最基本 API。但是,File 只是另一个 class 对吧?所以理论上我应该能够从头开始编写我自己的文件class,它不使用预先存在的文件,对吧?我该怎么做? File class 内部发生了什么,告诉 VM 实际创建文件?我查看了文件 class 的源代码,看起来它调用了另一个名为 VMFile 的 class,但我找不到任何关于 VMFile 是什么的解释。当我查看 VMFile 源代码时,它只有没有定义的函数声明。

感谢您的帮助。

Java 本机接口 (JNI) 是 Java 类 和 OS 之间的粘合剂。本机方法具有 'native' 属性 (look it up in the JLS)。