0
JNIコードを作成するときは、C
またはC++
で作成したDLL
をロードしてネイティブ関数を使用するには、System.load()
またはSystem.loadLibrary()
メソッドを使用する必要があります。java.lang.Objectクラスはどのようにネイティブ関数をロードしますか?
しかし、どのようにjava.lang.Object
またはjava.lang.System
のようなクラスがhashCode()
またはclone()
またはsetOut0(PrintStream out)
のような、独自のネイティブ関数をロードしない、とどこそのライブラリが存在するのでしょうか?
はい、私はまだJVMがその機能をどのように見つけているのか分かりません。 ObjectはregisterNatives()ネイティブメソッドを呼び出しますが、その関数は何らかの形でObjectにリンクされていなければなりません。ライブラリへのパスを指定せずにどうしたら実現できますか? –
ライブラリは必要ありません。 APIを参照してください。関数のアドレスを直接指定します。この関数はすでにJVMにリンクされています。 – EJP
それは私が不思議に思っていたことです、私は今理解しています、返信いただきありがとうございます。 –