Java 執行時 load() 方法



描述

Java 執行時 load(String filename) 方法將指定的檔名載入為動態庫。檔名引數必須是完整路徑名(例如 Runtime.getRuntime().load())。首先,如果存在安全管理器,則其 checkLink 方法將使用檔名作為其引數被呼叫。這可能會導致安全異常。這類似於 loadLibrary(String) 方法,但它接受一個通用檔名作為引數,而不僅僅是庫名,允許載入任何原生代碼檔案。System.load(String) 方法是呼叫此方法的常規且便捷的方式。

宣告

以下是 java.lang.Runtime.load() 方法的宣告

public void load(String filename)

引數

filename - 要載入的檔案。

返回值

此方法不返回值。

異常

  • SecurityException - 如果存在安全管理器並且其 checkLink 方法不允許載入指定動態庫

  • UnsatisfiedLinkError - 如果檔案不存在

  • NullPointerException - 如果 filename 為 null

示例:載入加密 DLL

以下示例演示了 Java 執行時 load() 方法的用法。在此程式中,使用 load() 方法,我們傳遞 crypt32.dll 的完整路徑以載入它,並列印相應的訊息。

package com.tutorialspoint;

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().load("C:/Windows/System32/crypt32.dll");
      System.out.println("Library Loaded.");
   }
}

輸出

讓我們編譯並執行上述程式,這將產生以下結果:

Program starting...
Loading Library...
Library Loaded.

示例:載入 DLL 時出現異常

以下示例演示了 Java 執行時 load() 方法的用法。在此程式中,使用 load() 方法,我們傳遞一個不存在的 dll 的路徑以載入它,並列印相應的異常訊息。

package com.tutorialspoint;

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().load("C:/Windows/System32/crypt.dll");
      System.out.println("Library Loaded.");
   }
}

輸出

讓我們編譯並執行上述程式,這將產生以下結果:

Program starting...
Loading Library...
Exception in thread "main" java.lang.UnsatisfiedLinkError: Can't load library: C:\Windows\System32\crypt.dll
	at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2422)
	at java.base/java.lang.Runtime.load0(Runtime.java:852)
	at java.base/java.lang.Runtime.load(Runtime.java:838)
	at com.tutorialspoint.RuntimeDemo.main(RuntimeDemo.java:12)

示例:載入檔案管理 DLL

以下示例演示了 Java 執行時 load() 方法的用法。在此程式中,使用 load() 方法,我們傳遞 filemgmt.dll 的完整路徑以載入它,並列印相應的訊息。

package com.tutorialspoint;

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().load("C:/Windows/System32/filemgmt.dll");
      System.out.println("Library Loaded.");
   }
}

輸出

讓我們編譯並執行上述程式,這將產生以下結果:

Program starting...
Loading Library...
Library Loaded.
java_lang_runtime.htm
廣告