Zum Nachladen von native Methoden des Anwenders müssen Sie in Java z.B. die Methode System.loadLibrary() aufrufen.
Aus dem bei loadLibrary() angegebenen Namen wird ein neuer Name gebildet, unter dem die Library dann gesucht wird, dieser Name ist lib<name>.so.
Die Library wird unter Benutzung der Umgebungsvariablen LD_LIBRARY_PATH gesucht. Die erste auf diese Weise gefundene Beschreibungsdatei wird dann benutzt, um den oder die zugehörigen Module dynamisch zu laden.
Die JVM und die native Methoden von Java werden in eigenen shared Libraries gehalten und in jeweils separate Kontexte geladen. Werden daher über das JNI-Interface hinausgehende Schnittstellen der JVM genutzt (was nicht sein sollte), müssen die entsprechenden Abhängigkeiten zu den shared Libraries in den Benutzer-Libraries eingetragen werden.
Mit der ersten C++-Methode wird ein C++-Laufzeitsystem (inklusive Tools- und Standard-Library) nachgeladen und C++ wird initialisiert, falls das noch nicht geschehen ist.
Beim Nachladen von Shared Libraries (BIND-Makro) wird der „Share Scope“ zum Auflösen offener Extern-Referenzen derzeit nicht durchsucht, weil dann nicht mehr garantiert werden könnte, dass das Java-private CRTE bzw. Sockets genutzt wird.
Wird vom Anwender selbst via BIND Code nachgeladen, muss dies ebenfalls so geschehen, zumindest wenn Referenzen zum C-Laufzeitsystem und den Sockets bestehen.
Java native Methoden bzw. die sie enthaltenden Großmodule können mit dem derzeitigen Binde-Lade-System nicht vorgeladen werden.