1

是否可以调用JVM 内置的native 代码,即java.lang 和java.io 中的各个类调用的代码?换句话说,你能绕过内置的 java API 来访问各种系统级调用,例如文件系统访问吗?我知道我可以通过构建自己的本机代码库并通过 JNI 调用它来做到这一点,但是对于已经内置到 JVM 中的功能不需要额外的本机库会很优雅。

4

3 回答 3

6

不,你不能。它是故意这样设计的;如果可以的话,你会覆盖 API 合同。

无论如何,标准库包装器代码非常少,使用 JIT 编译器您应该不会注意到任何速度影响。

此外,这些方法的实现不是 API 规范的一部分。对于 Java 的一种实现来说,“本机”不一定是另一种。

于 2009-05-27T19:03:22.477 回答
0

当然,如果代码是可信的,您可以使用反射来调用方法。但是,非公共 API 很容易在更新和实现之间发生变化,因此几乎毫无意义且绝对不优雅。

于 2009-05-27T19:08:42.620 回答
-1

如果您想要 Native IO,请使用 NIO 类。

于 2009-05-27T19:04:10.040 回答