![java package tutorial](/java/lang/images/java.jpg)
- Java.lang Package classes
- Java.lang - Home
- Java.lang - Boolean
- Java.lang - Byte
- Java.lang - Character
- Java.lang - Character.Subset
- Java.lang - Character.UnicodeBlock
- Java.lang - Class
- Java.lang - ClassLoader
- Java.lang - Compiler
- Java.lang - Double
- Java.lang - Enum
- Java.lang - Float
- Java.lang - InheritableThreadLocal
- Java.lang - Integer
- Java.lang - Long
- Java.lang - Math
- Java.lang - Number
- Java.lang - Object
- Java.lang - Package
- Java.lang - Process
- Java.lang - ProcessBuilder
- Java.lang - Runtime
- Java.lang - RuntimePermission
- Java.lang - SecurityManager
- Java.lang - Short
- Java.lang - StackTraceElement
- Java.lang - StrictMath
- Java.lang - String
- Java.lang - StringBuffer
- Java.lang - StringBuilder
- Java.lang - System
- Java.lang - Thread
- Java.lang - ThreadGroup
- Java.lang - ThreadLocal
- Java.lang - Throwable
- Java.lang - Void
- Java.lang Package extras
- Java.lang - Interfaces
- Java.lang - Errors
- Java.lang - Exceptions
- Java.lang Package Useful Resources
- Java.lang - Useful Resources
- Java.lang - Discussion
Java Runtime loadLibrary() Method
Description
The Java Runtime loadLibrary(String filename) method loads the dynamic library with the specified library name. A file containing native code is loaded from the local file system from a place where library files are conventionally obtained. The details of this process are implementation-dependent. The mapping from a library name to a specific filename is done in a system-specific manner.
First, if there is a security manager, its checkLink method is called with the libname as its argument. This may result in a security exception. The method System.loadLibrary(String) is the conventional and convenient means of invoking this method. If native methods are to be used in the implementation of a class, a standard strategy is to put the native code in a library file (call it LibFile) and then to put a static initializer −
static { System.loadLibrary("LibFile"); }
within the class declaration. When the class is loaded and initialized, the necessary native code implementation for the native methods will then be loaded as well. If this method is called more than once with the same library name, the second and subsequent calls are ignored.
Declaration
Following is the declaration for java.lang.Runtime.loadLibrary() method
public void loadLibrary(String libname)
Parameters
libname − the name of the library.
Return Value
This method does not return a value.
Exception
SecurityException − if a security manager exists and its checkLink method doesn't allow loading of the specified dynamic library
UnsatisfiedLinkError − if the library does not exist
NullPointerException − if libname is null
Example: Loading JAAS DLL present in JDK Library Path
The following example shows the usage of Java Runtime load() method. In this program, using load() method, we're passing relative path of jaas.dll to load it and corresponding message is printed.
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 in Java Library Path System.out.println("Loading Library..."); Runtime.getRuntime().loadLibrary("jaas"); System.out.println("Library Loaded."); } }
Output
Let us compile and run the above program, this will produce the following result −
Program starting... Loading Library... Library Loaded.
Example: Exception while Loading a DLL
The following example shows the usage of Java Runtime load() method. In this program, using load() method, we're passing path of a non-existing dll to load it and corresponding exception message is printed.
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().loadLibrary("C:/Windows/System32/crypt32.dll"); System.out.println("Library Loaded."); } }
Output
Let us compile and run the above program, this will produce the following result −
Program starting... Loading Library... Exception in thread "main" java.lang.UnsatisfiedLinkError: no C:/Windows/System32/crypt32.dll in java.library.path: C:\Program Files\Java\jdk-21\bin;;. at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2458) at java.base/java.lang.Runtime.loadLibrary0(Runtime.java:916) at java.base/java.lang.Runtime.loadLibrary(Runtime.java:903) at com.tutorialspoint.RuntimeDemo.main(RuntimeDemo.java:12)
Example: Loading EXTNET DLL
The following example shows the usage of Java Runtime load() method. In this program, using load() method, we're passing relative path of extnet.dll to load it and corresponding message is printed.
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 in Java Library Path System.out.println("Loading Library..."); Runtime.getRuntime().loadLibrary("extnet"); System.out.println("Library Loaded."); } }
Output
Let us compile and run the above program, this will produce the following result −
Program starting... Loading Library... Library Loaded.