src/share/classes/java/lang/Runtime.java
Print this page
*** 1,7 ****
/*
! * Copyright (c) 1995, 2011, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Oracle designates this
--- 1,7 ----
/*
! * Copyright (c) 1995, 2013, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Oracle designates this
*** 747,760 ****
* <code>false</code> to disable this feature.
*/
public native void traceMethodCalls(boolean on);
/**
! * Loads the specified filename as a dynamic library. The filename
! * argument must be a complete path name,
* (for example
* <code>Runtime.getRuntime().load("/home/avh/lib/libX11.so");</code>).
* <p>
* First, if there is a security manager, its <code>checkLink</code>
* method is called with the <code>filename</code> as its argument.
* This may result in a security exception.
* <p>
--- 747,771 ----
* <code>false</code> to disable this feature.
*/
public native void traceMethodCalls(boolean on);
/**
! * Loads the native library specified by the filename argument. The filename
! * argument must be an absolute path name.
* (for example
* <code>Runtime.getRuntime().load("/home/avh/lib/libX11.so");</code>).
+ *
+ * If the filename argument, when stripped of any platform-specific library
+ * prefix, path, and file extension, indicates a library whose name is,
+ * for example, 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>
* First, if there is a security manager, its <code>checkLink</code>
* method is called with the <code>filename</code> as its argument.
* This may result in a security exception.
* <p>
*** 767,777 ****
*
* @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 NullPointerException if <code>filename</code> is
* <code>null</code>
* @see java.lang.Runtime#getRuntime()
* @see java.lang.SecurityException
* @see java.lang.SecurityManager#checkLink(java.lang.String)
--- 778,791 ----
*
* @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 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#getRuntime()
* @see java.lang.SecurityException
* @see java.lang.SecurityManager#checkLink(java.lang.String)
*** 791,806 ****
}
ClassLoader.loadLibrary(fromClass, filename, true);
}
/**
! * 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.
* <p>
* First, if there is a security manager, its <code>checkLink</code>
* method is called with the <code>libname</code> as its argument.
* This may result in a security exception.
* <p>
--- 805,824 ----
}
ClassLoader.loadLibrary(fromClass, filename, true);
}
/**
! * 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>
* First, if there is a security manager, its <code>checkLink</code>
* method is called with the <code>libname</code> as its argument.
* This may result in a security exception.
* <p>
*** 821,831 ****
*
* @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 NullPointerException if <code>libname</code> is
* <code>null</code>
* @see java.lang.SecurityException
* @see java.lang.SecurityManager#checkLink(java.lang.String)
*/
--- 839,852 ----
*
* @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 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.SecurityException
* @see java.lang.SecurityManager#checkLink(java.lang.String)
*/