src/share/classes/java/lang/System.java

Print this page

        

@@ -1035,13 +1035,24 @@
     public static void runFinalizersOnExit(boolean value) {
         Runtime.runFinalizersOnExit(value);
     }
 
     /**
-     * Loads a code file with the specified filename from the local file
-     * system as a dynamic library. The filename
-     * argument must be a complete path name.
+     * Loads the native library specified by the filename argument.  The filename 
+     * argument must be an absolute path name.
+     *  
+     * If the filename argument, when stripped of any platform-specific library 
+     * prefix, path, and file extension, indicates a library whose name is L, 
+     * and a native library called L is statically linked with the VM, then the 
+     * JNI_OnLoad_L function exported by the library is invoked rather than 
+     * attempting to load a dynamic library.  A filename matching the argument 
+     * does not have to exist in the file system.   See the JNI Specification 
+     * for more details.
+     * 
+     * Otherwise, the filename argument is mapped to a native library image in 
+     * an implementation-dependent manner.
+     * 
      * <p>
      * The call <code>System.load(name)</code> is effectively equivalent
      * to the call:
      * <blockquote><pre>
      * Runtime.getRuntime().load(name)

@@ -1049,24 +1060,34 @@
      *
      * @param      filename   the file to load.
      * @exception  SecurityException  if a security manager exists and its
      *             <code>checkLink</code> method doesn't allow
      *             loading of the specified dynamic library
-     * @exception  UnsatisfiedLinkError  if the file does not exist.
+     * @exception  UnsatisfiedLinkError  if either the filename is not an 
+     *             absolute path name, the native library is not statically 
+     *             linked with the VM, or the library cannot be mapped to 
+     *             a native library image by the host system.
      * @exception  NullPointerException if <code>filename</code> is
      *             <code>null</code>
      * @see        java.lang.Runtime#load(java.lang.String)
      * @see        java.lang.SecurityManager#checkLink(java.lang.String)
      */
     public static void load(String filename) {
         Runtime.getRuntime().load0(getCallerClass(), filename);
     }
 
     /**
-     * Loads the system library specified by the <code>libname</code>
-     * argument. The manner in which a library name is mapped to the
-     * actual system library is system dependent.
+     * Loads the native library specified by the <code>libname</code> 
+     * argument.  The <code>libname</code> argument must not contain any platform 
+     * specific prefix, file extension or path. If a native library 
+     * called <code>libname</code> is statically linked with the VM, then the 
+     * JNI_OnLoad_<code>libname</code> function exported by the library is invoked. 
+     * See the JNI Specification for more details.
+     *  
+     * Otherwise, the libname argument is loaded from a system library 
+     * location and mapped to a native library image in an implementation-
+     * dependent manner.
      * <p>
      * The call <code>System.loadLibrary(name)</code> is effectively
      * equivalent to the call
      * <blockquote><pre>
      * Runtime.getRuntime().loadLibrary(name)

@@ -1074,11 +1095,14 @@
      *
      * @param      libname   the name of the library.
      * @exception  SecurityException  if a security manager exists and its
      *             <code>checkLink</code> method doesn't allow
      *             loading of the specified dynamic library
-     * @exception  UnsatisfiedLinkError  if the library does not exist.
+     * @exception  UnsatisfiedLinkError if either the libname argument 
+     *             contains a file path, the native library is not statically 
+     *             linked with the VM,  or the library cannot be mapped to a 
+     *             native library image by the host system.
      * @exception  NullPointerException if <code>libname</code> is
      *             <code>null</code>
      * @see        java.lang.Runtime#loadLibrary(java.lang.String)
      * @see        java.lang.SecurityManager#checkLink(java.lang.String)
      */