位置:首页 > Java技术 > java.lang > java.lang.Runtime.loadLibrary(String filename)方法实例

java.lang.Runtime.loadLibrary(String filename)方法实例

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.