public interface ClassLoaderRepository
该接口的实例是用来保持在MBean服务器注册类的列表。他们提供加载类使用注册的类装载器的必要方法。
在ClassLoaderRepository
第一类加载器是MBean服务器自身的ClassLoader。
当MBean是MBean服务器注册,如果它是对ClassLoader
的子类,如果它不实现接口PrivateClassLoader
,它被添加到MBean服务器的ClassLoaderRepository
结束。如果随后未注册MBean服务器,它是从ClassLoaderRepository
删除。
在ClassLoaderRepository
MBean的顺序很重要。任何两MBeans X和Y在ClassLoaderRepository
,x必须出现在Y如果X的注册登记前,Y开始完成。如果X和Y是同时注册的,他们的顺序是不确定的。MBean注册对应的电话MBeanServer.registerMBean(java.lang.Object, javax.management.ObjectName)
或其中的MBeanServer
.createMBean
方法。
MBeanServerFactory
Modifier and Type | Method and Description |
---|---|
类<?> |
loadClass(String className)
通过类装载器的列表加载给定的类名称。
|
类<?> |
loadClassBefore(ClassLoader stop, String className)
通过类装载器的列表加载给定的类名称,在给定的一个给定的类名称。
|
类<?> |
loadClassWithout(ClassLoader exclude, String className)
通过将给定的类名称加载到类装入器的列表中,不包括给定的类名称。
|
类<?> loadClass(String className) throws ClassNotFoundException
通过类装载器的列表加载给定的类名称。每个类装载器依次从classloaderrepository是要求加载类通过其ClassLoader.loadClass(String)
方法。如果成功返回一个类
对象,这是该方法的结果。如果把一个ClassNotFoundException
,搜索继续与下一个ClassLoader。如果它抛出另一个异常,则从该方法中传播该异常。如果列表的结束,一个ClassNotFoundException
抛出。
className
-类的名称来加载。
ClassNotFoundException
-指定类不能被发现。
类<?> loadClassWithout(ClassLoader exclude, String className) throws ClassNotFoundException
通过将给定的类名称加载到类装入器的列表中,不包括给定的类名称。每个类装载器依次从classloaderrepository,除了exclude
,是要求加载类通过其ClassLoader.loadClass(String)
方法。如果成功返回一个类
对象,这是该方法的结果。如果把一个ClassNotFoundException
,搜索继续与下一个ClassLoader。如果它抛出另一个异常,则从该方法中传播该异常。如果列表的结束,一个ClassNotFoundException
抛出。
注意,如果在classloaderrepository类加载器调用从loadClass
方法这种方法,它暴露了自己的classloaderrepository僵局如果另一个类装载器在同一时间做同样的事情。的loadClassBefore(java.lang.ClassLoader, java.lang.String)
方法推荐为避免死锁。
className
-类的名称来加载。
exclude
的类装载器被排除。可能是无效的,在这种情况下,这种方法是相当于
loadClass(className)
。
ClassNotFoundException
-指定类不能被发现。
类<?> loadClassBefore(ClassLoader stop, String className) throws ClassNotFoundException
通过类装载器的列表加载给定的类名称,在给定的一个给定的类名称。每个类装载器依次从classloaderrepository是要求加载类通过其ClassLoader.loadClass(String)
方法。如果成功返回一个类
对象,这是该方法的结果。如果把一个ClassNotFoundException
,搜索继续与下一个ClassLoader。如果它抛出另一个异常,则从该方法中传播该异常。如果搜索到stop
或列表的末尾,一个ClassNotFoundException
抛出。
通常这种方法是从stop
的loadClass
方法,查阅出现之前,它在ClassLoaderRepository
装载机。停止搜索尽快stop
达成,避免潜在的死锁并发类加载。
className
-类的名称来加载。
stop
的类装载器,停止。可能是无效的,在这种情况下,这种方法是相当于
loadClass(className)
。
ClassNotFoundException
-指定类不能被发现。
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.