java.applet

java.awt

java.awt.color

java.awt.datatransfer

java.awt.dnd

java.awt.event

java.awt.font

java.awt.geom

java.awt.im

java.awt.im.spi

java.awt.image

java.awt.image.renderable

java.awt.print

java.beans

java.beans.beancontext

java.io

java.lang

java.lang.annotation

java.lang.instrument

java.lang.management

java.lang.ref

java.lang.reflect

java.math

java.net

java.nio

java.nio.channels

java.nio.channels.spi

java.nio.charset

java.nio.charset.spi

java.rmi

java.rmi.activation

java.rmi.dgc

java.rmi.registry

java.rmi.server

java.security

java.security.acl

java.security.cert

java.security.interfaces

java.security.spec

java.sql

java.text

java.util

java.util.concurrent

java.util.concurrent.atomic

java.util.concurrent.locks

java.util.jar

java.util.logging

java.util.prefs

java.util.regex

java.util.zip

javax.accessibility

javax.activity

javax.crypto

javax.crypto.interfaces

javax.crypto.spec

javax.imageio

javax.imageio.event

javax.imageio.metadata

javax.imageio.plugins.bmp

javax.imageio.plugins.jpeg

javax.imageio.spi

javax.imageio.stream

javax.management

javax.management.loading

javax.management.modelmbean

javax.management.monitor

javax.management.openmbean

javax.management.relation

javax.management.remote

javax.management.remote.rmi

javax.management.timer

javax.naming

javax.naming.directory

javax.naming.event

javax.naming.ldap

javax.naming.spi

javax.net

javax.net.ssl

javax.print

javax.print.attribute

javax.print.attribute.standard

javax.print.event

javax.rmi

javax.rmi.CORBA

javax.rmi.ssl

javax.security.auth

javax.security.auth.callback

javax.security.auth.kerberos

javax.security.auth.login

javax.security.auth.spi

javax.security.auth.x500

javax.security.cert

javax.security.sasl

javax.sound.midi

javax.sound.midi.spi

javax.sound.sampled

javax.sound.sampled.spi

javax.sql

javax.sql.rowset

javax.sql.rowset.serial

javax.sql.rowset.spi

javax.swing

javax.swing.border

javax.swing.colorchooser

javax.swing.event

javax.swing.filechooser

javax.swing.plaf

javax.swing.plaf.basic

javax.swing.plaf.metal

javax.swing.plaf.multi

javax.swing.plaf.synth

javax.swing.table

javax.swing.text

javax.swing.text

javax.swing.text.parser

javax.swing.text.rtf

javax.swing.tree

javax.swing.undo

javax.transaction

javax.transaction.xa

javax.xml

javax.xml.datatype

javax.xml.namespace

javax.xml.parsers

javax.xml.transform

javax.xml.transform.dom

javax.xml.transform.sax

javax.xml.transform.stream

javax.xml.validation

javax.xml.xpath

org.ietf.jgss

org.omg.CORBA

org.omg.CORBA_2_3

org.omg.CORBA_2_3.portable

org.omg.CORBA.DynAnyPackage

org.omg.CORBA.ORBPackage

org.omg.CORBA.portable

org.omg.CORBA.TypeCodePackage

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.w3c.dom.bootstrap

org.w3c.dom.events

org.w3c.dom.ls

org.xml.sax

org.xml.sax.ext

org.xml.sax.helpers

allclasses-frame

allclasses-noframe

constant-values

deprecated-list

help-doc

JavaTM 2 Platform
Standard Ed. 5.0

java.rmi.server
类 RMIClassLoaderSpi

java.lang.Object
  继承者 java.rmi.server.RMIClassLoaderSpi

public abstract class RMIClassLoaderSpi
extends Object

RMIClassLoaderSpiRMIClassLoader 的服务提供程序接口。尤其是,RMIClassLoaderSpi 接口提供 RMIClassLoader 的以下静态方法的实现:

当调用这些方法之一时,其行为是向此类的实例委托相应的方法。有关每个方法如何委托给提供程序实例的详细信息,在各自特定方法的文档中进行了描述。有关如何选择提供程序实例的描述,请参阅 RMIClassLoader 文档。

从以下版本开始:
JDK1.4
另请参见:
RMIClassLoader

构造方法摘要
RMIClassLoaderSpi()
           
 
方法摘要
abstract  String getClassAnnotation(Class<?> cl)
          提供 RMIClassLoader.getClassAnnotation(Class) 的实现。
abstract  ClassLoader getClassLoader(String codebase)
          提供 RMIClassLoader.getClassLoader(String) 的实现。
abstract  Class<?> loadClass(String codebase, String name, ClassLoader defaultLoader)
          提供 RMIClassLoader.loadClass(URL,String)RMIClassLoader.loadClass(String,String)RMIClassLoader.loadClass(String,String,ClassLoader) 的实现。
abstract  Class<?> loadProxyClass(String codebase, String[] interfaces, ClassLoader defaultLoader)
          提供 RMIClassLoader.loadProxyClass(String,String[],ClassLoader) 的实现。
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

构造方法详细信息

RMIClassLoaderSpi

public RMIClassLoaderSpi()
方法详细信息

loadClass

public abstract Class<?> loadClass(String codebase,
                                   String name,
                                   ClassLoader defaultLoader)
                            throws MalformedURLException,
                                   ClassNotFoundException
提供 RMIClassLoader.loadClass(URL,String)RMIClassLoader.loadClass(String,String)RMIClassLoader.loadClass(String,String,ClassLoader) 的实现。选用提供的加载程序,从代码基 URL 路径加载某个类。 通常,提供程序实现将试图先使用给定的 defaultLoader(如果指定)解析指定的类,然后才试图从代码基 URL 路径解析该类。

此方法的实现必须返回具有给定名称的一个类,或抛出异常。

参数:
codebase - 要从其加载类的 URL 的列表(由空格分隔),或者为 null
name - 要加载的类名称
defaultLoader - 要使用的其他上下文类加载器,或 null
返回:
表示加载的类的 Class 对象
抛出:
MalformedURLException - 如果 codebase 为非 null 且包含一个无效 URL,或者如果 codebasenull 且用于加载类的特定于提供程序的 URL 无效。
ClassNotFoundException - 如果在指定位置无法找到该类的定义

loadProxyClass

public abstract Class<?> loadProxyClass(String codebase,
                                        String[] interfaces,
                                        ClassLoader defaultLoader)
                                 throws MalformedURLException,
                                        ClassNotFoundException
提供 RMIClassLoader.loadProxyClass(String,String[],ClassLoader) 的实现。选用提供的加载器,从代码基 URL 路径加载实现一组具有给定名称接口集的动态代理类(请参阅 Proxy)。

此方法的实现必须能返回一个实现指定接口的代理类,或抛出异常。

参数:
codebase - 要从其加载类的 URL 列表(由空格分隔),或 null
interfaces - 要实现的代理类的接口名称
defaultLoader - 要使用的其他上下文类加载器,或 null
返回:
实现指定接口的动态代理类
抛出:
MalformedURLException - 如果 codebase 为非 null 且包含一个无效 URL,或者如果 codebasenull 且用于加载类的特定于提供程序的 URL 无效。
ClassNotFoundException - 如果在指定位置无法找到某个指定接口的定义,或者如果动态代理类的创建失败(例如,如果 Proxy.getProxyClass(ClassLoader,Class[]) 抛出给定接口列表的 IllegalArgumentException

getClassLoader

public abstract ClassLoader getClassLoader(String codebase)
                                    throws MalformedURLException
提供 RMIClassLoader.getClassLoader(String) 的实现。返回从给定代码基 URL 路径加载类的类加载器。

如果存在安全管理器,则使用 RuntimePermission("getClassLoader") 权限调用其 checkPermission 方法;这会导致 SecurityException。此方法的实现还可以执行进一步的安全检查,以验证调用上下文是否具有连接到代码基 URL 路径中的所有 URL 的权限。

参数:
codebase - 返回的类加载器将从其加载类的 URL 列表(由空格分隔),或 null
返回:
从给定代码基 URL 路径加载类的类加载器
抛出:
MalformedURLException - 如果 codebase 为非 null 且包含一个无效 URL,或者如果 codebasenull 且用于标识类加载器的特定于提供程序的 URL 无效
SecurityException - 如果存在安全管理器且其 checkPermission 方法的调用失败,或者如果调用方没有连接到代码基 URL 路径中所有 URL 的权限

getClassAnnotation

public abstract String getClassAnnotation(Class<?> cl)
提供 RMIClassLoader.getClassAnnotation(Class) 的实现。返回表示类定义位置的注释字符串,RMI 将在编组给定类的对象时用其注释类描述符。

参数:
cl - 要获得其注释的类
返回:
在编组时用于注释给定类的字符串,或 null
抛出:
NullPointerException - 如果 clnull

JavaTM 2 Platform
Standard Ed. 5.0

提交错误或意见
有关更多的 API 参考资料和开发人员文档,请参阅 Java 2 SDK SE 开发人员文档。该文档包含更详细的、面向开发人员的描述,以及总体概述、术语定义、使用技巧和工作代码示例。

版权所有 2004 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策