[转]授权标准覆盖机制

<!-- Body text begins here -->

Endorsed Standards Override Mechanism

Introduction

An endorsed standard is a Java TM API defined through a standards process other than the Java Community Process SM (JCP SM). Because endorsed standards are defined outside the JCP, it is anticipated that such standards may be revised between releases of the Java platform. In order to take advantage of new revisions to endorsed standards, developers and software vendors may use the Endorsed Standards Override Mechanism to provide newer versions of an endorsed standard than those included in the Java platform as released by Sun Microsystems.

Endorsed Standards Classes Deployment

Classes implementing newer versions of endorsed standards should be placed in JAR files. The system property java.endorsed.dirs specifies one or more directories that the Java runtime environment will search for such JAR files. If more than one directory path is specified by java.endorsed.dirs, they must be separated by File.pathSeparatorChar. If no value is set for java.endorsed.dirs, then Sun Microsystem's implementation of the Java platform looks for JAR files in a default standard location:
<java-home>\lib\endorsed          [Microsoft Windows]

<java-home>/lib/endorsed [Solaris or Linux]

Here <java-home> refers to the directory where the runtime software is installed (which is the top-level directory of the J2SE Runtime Environment or the jre directory in the JDK).

The J2SE runtime environment will use classes in such JAR files to override the corresponding classes provided in the Java platform as shipped by Sun.

Endorsed Standards APIs

The endorsed standards for J2SE TM 5.0 constitute all classes and interfaces that are defined in the packages listed below. Classes and interfaces defined in sub-packages of listed packages are not endorsed standards unless those sub-packages are themselves listed. The Endorsed Standards Override Mechanism may be used to override the J2SE platform packages in the list below, and these packages may be overridden only by versions of the endorsed standard that are newer than that provided by the Java platform as released by Sun. No other packages from the J2SE platform API specification may be overridden.
javax.rmi.CORBA 

org.omg.CORBA

org.omg.CORBA.DynAnyPackage

org.omg.CORBA.ORBPackage

org.omg.CORBA.portable

org.omg.CORBA.TypeCodePackage

org.omg.CORBA_2_3

org.omg.CORBA_2_3.portable

org.omg.CosNaming

org.omg.CosNaming.NamingContextExtPackage

org.omg.CosNaming.NamingContextPackage

org.omg.Dynamic

org.omg.DynamicAny

org.omg.DynamicAny.DynAnyFactoryPackage

org.omg.DynamicAny.DynAnyPackage

org.omg.IOP

org.omg.IOP.CodecFactoryPackage

org.omg.IOP.CodecPackage

org.omg.Messaging

org.omg.PortableInterceptor

org.omg.PortableInterceptor.ORBInitInfoPackage

org.omg.PortableServer

org.omg.PortableServer.CurrentPackage

org.omg.PortableServer.POAManagerPackage

org.omg.PortableServer.POAPackage

org.omg.PortableServer.portable

org.omg.PortableServer.ServantLocatorPackage

org.omg.SendingContext

org.omg.stub.java.rmi

org.w3c.dom

org.xml.sax

org.xml.sax.ext

org.xml.sax.helpers

In addition to the packages listed above, which are part of the J2SE specification, users of Sun's J2SE Reference Implementation may be allowed to use the Endorsed Standards Override Mechanism to override implementation-specific classes such as the org.w3c.dom sub-packages delivered in Sun's Reference Implementation. See the corresponding license for details.



其实就是把新的jar形式的API放到$JDK_HOME/jre/lib/endorsed目录中,以达到覆盖JDK中原有旧版的API的目的。


来源:http://java.sun.com/j2se/1.5.0/docs/guide/standards/

你可能感兴趣的:(java,jdk,linux,J2SE,sun)