java.lang.Runtime.loadLibrary(String filename) 方法載入動態庫與指定的庫名。一個包含原生代碼檔案從本地檔案系統載入的庫檔案通常被那裡得到的地方。這個過程的細節是依賴於實現。從庫名到特定檔案名的對映在系統特定的方式進行。
首先,如果有安全管理器,checkLink方法呼叫LibFile作為它的引數。這可能導致一個安全性異常。方法System.loadLibrary(String)是呼叫此方法的常規的和方便的手段。如果本機方法在類的實現中使用,一個標準的策略是把本機程式碼庫中的檔案(稱之為LibFile),然後把一個靜態初始化:
static { System.loadLibrary("LibFile"); }類的宣告。當類載入和初始化,必要將本機程式碼執行方法將被載入為好。如果這種方法被稱為一次以上具有相同庫名稱,在第二和後續呼叫將被忽略。
以下是java.lang.Runtime.loadLibrary()方法的宣告
public void loadLibrary(String libname)
libname -- the name of the library.
這個方法沒有返回值。
SecurityException -- 如果安全管理器存在並且其checkLink方法不允許載入指定的動態庫
UnsatisfiedLinkError -- 如果library不存在
NullPointerException -- 如果libname為null
下面的例子顯示lang.Runtime.loadLibrary()方法的使用。
package com.yiibai; public class RuntimeDemo { public static void main(String[] args) { // print when the program starts System.out.println("Program starting..."); // load a library that is Windows/System32 folder System.out.println("Loading Library..."); Runtime.getRuntime().loadLibrary("C:/Windows/System32/crypt32.dll"); System.out.println("Library Loaded."); } }
讓我們來編譯和執行上面的程式,這將產生以下結果:
Program starting... Loading Library... Library Loaded.