0

アプリケーション全体を Java で開発できるのに、ネイティブにアクセスするために JNI が必要なのはなぜですか。

よろしく、スジャニアン

4

3 に答える 3

0

アプリケーション全体を Java で開発できない場合は、JNI が必要です。これは、たとえば、C でしか使用できないレガシー ライブラリがある場合や、システム ドライバーと通信する必要がある場合に発生する可能性があります。アプリケーション全体を純粋な Java で記述できる場合は、もちろん JNI は必要ありません。

于 2012-04-09T12:19:40.943 に答える
0

アプリケーション全体を純粋な Java で開発できる場合、JNI は必要ありません。それも好ましい方法です。

でも:

  • 既存のネイティブ コード ライブラリを呼び出すことができます。それらを Java で書き直すことは可能かもしれませんが、それは大変な作業になる可能性があります (移植と、後で 2 つのバージョンを維持するため)。

  • JVM ではできない方法でハードウェア/OS と直接対話するために、いくつかの低レベル コードを記述する必要がある場合があります。

于 2012-04-09T12:20:48.480 に答える
0

アプリケーション全体を Java で開発できるのに、ネイティブにアクセスするために JNI が必要なのはなぜですか。

これにより、常にアプリケーション全体を Java で開発できると主張しているのであれば、それは誤りです。いつもそれができるとは限りません。JNI はそのギャップを埋めるために存在します。

一方、'when' ではなく 'if' を意味する場合、答えは、そのような場合には JNI は必要ないということです。

于 2012-04-10T03:52:22.413 に答える