src/share/classes/java/lang/ClassLoader.java

Print this page




 685      * specified in the documentation for {@link #defineClass(String, byte[],
 686      * int, int)}.  Before the class can be used it must be resolved.
 687      *
 688      * <p> The first class defined in a package determines the exact set of
 689      * certificates that all subsequent classes defined in that package must
 690      * contain.  The set of certificates for a class is obtained from the
 691      * {@link java.security.CodeSource <tt>CodeSource</tt>} within the
 692      * <tt>ProtectionDomain</tt> of the class.  Any classes added to that
 693      * package must contain the same set of certificates or a
 694      * <tt>SecurityException</tt> will be thrown.  Note that if
 695      * <tt>name</tt> is <tt>null</tt>, this check is not performed.
 696      * You should always pass in the <a href="#name">binary name</a> of the
 697      * class you are defining as well as the bytes.  This ensures that the
 698      * class you are defining is indeed the class you think it is.
 699      *
 700      * <p> The specified <tt>name</tt> cannot begin with "<tt>java.</tt>", since
 701      * all classes in the "<tt>java.*</tt> packages can only be defined by the
 702      * bootstrap class loader.  If <tt>name</tt> is not <tt>null</tt>, it
 703      * must be equal to the <a href="#name">binary name</a> of the class
 704      * specified by the byte array "<tt>b</tt>", otherwise a {@link
 705      * <tt>NoClassDefFoundError</tt>} will be thrown.  </p>
 706      *
 707      * @param  name
 708      *         The expected <a href="#name">binary name</a> of the class, or
 709      *         <tt>null</tt> if not known
 710      *
 711      * @param  b
 712      *         The bytes that make up the class data. The bytes in positions
 713      *         <tt>off</tt> through <tt>off+len-1</tt> should have the format
 714      *         of a valid class file as defined by
 715      *         <cite>The Java&trade; Virtual Machine Specification</cite>.
 716      *
 717      * @param  off
 718      *         The start offset in <tt>b</tt> of the class data
 719      *
 720      * @param  len
 721      *         The length of the class data
 722      *
 723      * @param  protectionDomain
 724      *         The ProtectionDomain of the class
 725      *




 685      * specified in the documentation for {@link #defineClass(String, byte[],
 686      * int, int)}.  Before the class can be used it must be resolved.
 687      *
 688      * <p> The first class defined in a package determines the exact set of
 689      * certificates that all subsequent classes defined in that package must
 690      * contain.  The set of certificates for a class is obtained from the
 691      * {@link java.security.CodeSource <tt>CodeSource</tt>} within the
 692      * <tt>ProtectionDomain</tt> of the class.  Any classes added to that
 693      * package must contain the same set of certificates or a
 694      * <tt>SecurityException</tt> will be thrown.  Note that if
 695      * <tt>name</tt> is <tt>null</tt>, this check is not performed.
 696      * You should always pass in the <a href="#name">binary name</a> of the
 697      * class you are defining as well as the bytes.  This ensures that the
 698      * class you are defining is indeed the class you think it is.
 699      *
 700      * <p> The specified <tt>name</tt> cannot begin with "<tt>java.</tt>", since
 701      * all classes in the "<tt>java.*</tt> packages can only be defined by the
 702      * bootstrap class loader.  If <tt>name</tt> is not <tt>null</tt>, it
 703      * must be equal to the <a href="#name">binary name</a> of the class
 704      * specified by the byte array "<tt>b</tt>", otherwise a {@link
 705      * NoClassDefFoundError <tt>NoClassDefFoundError</tt>} will be thrown. </p>
 706      *
 707      * @param  name
 708      *         The expected <a href="#name">binary name</a> of the class, or
 709      *         <tt>null</tt> if not known
 710      *
 711      * @param  b
 712      *         The bytes that make up the class data. The bytes in positions
 713      *         <tt>off</tt> through <tt>off+len-1</tt> should have the format
 714      *         of a valid class file as defined by
 715      *         <cite>The Java&trade; Virtual Machine Specification</cite>.
 716      *
 717      * @param  off
 718      *         The start offset in <tt>b</tt> of the class data
 719      *
 720      * @param  len
 721      *         The length of the class data
 722      *
 723      * @param  protectionDomain
 724      *         The ProtectionDomain of the class
 725      *