1

JVM の組み込みネイティブ コード、つまり java.lang および java.io のさまざまなクラスが呼び出すコードを呼び出すことは可能ですか? つまり、組み込みの Java API をバイパスして、ファイル システム アクセスなどのさまざまなシステム レベルの呼び出しにアクセスできますか? 独自のネイティブ コード ライブラリを構築し、それを JNI 経由で呼び出すことでこれを実行できることはわかっていますが、JVM に既に組み込まれている機能のために追加のネイティブ ライブラリを必要としない方が賢明です。

4

3 に答える 3

6

いいえ、できません。意図的にそのように設計されています。可能であれば、API コントラクトをオーバーライドします。

いずれにせよ、標準ライブラリのラッパー コードは非常にわずかであり、JIT コンパイラを使用すると、速度への影響に気付くことはありません。

さらに、これらのメソッドの実装は API 仕様の一部ではありません。Java の 1 つの実装にとって「ネイティブ」であるものは、別の実装にとって必ずしもそうである必要はありません。

于 2009-05-27T19:03:22.477 に答える
0

もちろん、コードが信頼できるものであれば、リフレクションを使用してメソッドを呼び出すことができます。ただし、非公開 API は更新と実装の間で変更される可能性があるため、ほとんど無意味であり、まったくエレガントではありません。

于 2009-05-27T19:08:42.620 に答える
-1

ネイティブ IO が必要な場合は、NIO クラスを使用します。

于 2009-05-27T19:04:10.040 に答える