165. Introducing the Foreign Linker API
The main goal of the Foreign Linker API is to provide a robust and easy-to-use API (no need to write C/C++ code) for sustaining interoperability between the Java code and C/C++ foreign functions of native shared libraries (in the future, other programming languages will be supported via this API).
The journey of calling foreign code starts with the java.lang.foreign.SymbolLookup
functional interface. This interface represents the entry point and consists of looking up the address of a given symbol in a loaded native shared library. There are three ways of doing this, as follows:
Linker.defaultLookup()
– as its name suggests, defaultLookup()
represents a default lookup that scans and locates all the symbols of the commonly used native shared libraries depending on the current operating system:
Linker linker = Linker.nativeLinker();
SymbolLookup lookup = linker.defaultLookup();
SymbolLookup.loaderLookup()
– represents...