返回委托的系统类加载器。该加载器是新的 classloader 实例的默认委托父类加载器,通常是用来启动应用程序的类加载器。
在运行时启动序列的早期首先调用此方法,这时会创建系统类加载器并将其设置为调用 thread 的上下文类加载器。
默认的系统类加载器是此类的一个与实现有关的实例。
如果在第一次调用此方法时定义系统属性 "java.system.class.loader",那么该属性的值就是将作为系统类加载器返回的那个类的名称。该类是使用默认系统类加载器进行加载的,它必须定义一个公共的构造方法,此构造方法带有用作委托父类加载器的 classloader 类型的单个参数。然后可以使用将默认系统类加载器用作参数的此构造方法创建一个实例。得到的类加载器被定义为系统类加载器。
如果我想学JAVA ,是买THINK IN JAVA 还是JAVA2核心技术:卷1 好???
iis7站长之家安全管理器,且调用者的类加载器既不是 null,也不同于或不是系统类加载器的祖先,那么该方法将使用 runtimepermission("getclassloader")
权限调用安全管理器的 checkpermission
方法,以检验系统类加载器的访问权。如果无此权限,则抛出 securityexception 异常。
- 返回:
- 委托的系统 classloader,如果没有这样的类加载器,则返回 null
- 抛出:
securityexception
- 如果存在安全管理器,且其 checkpermission 方法不允许访问系统类加载器。
illegalstateexception
- 如果在构造由 "java.system.class.loader" 属性指定的类加载器期间进行递归调用。
error
- 如果定义了系统属性 "java.system.class.loader",但是无法加载指定的类,提供者类没有定义所需的构造方法,或者在调用该构造方法时抛出异常。可以通过 throwable.getcause()
方法找出导致该错误的基本原因。