怎么让我从Java API继承的类实例化时调用的是自己写的ClassLoader

ican20 2009-05-12 05:32:33
比如我现在有一个类:DemoThread extends Thread
现在我改变DemoThread的默认类加载器sun.misc.Launcher$AppClassLoader@18d107f,让它变成我自己定义的MyClassLoader extends ClassLoader。不知道应该怎么做?
注意这是一个自动性的行为。
Class.forName(String name,boolean flag,ClassLoader loader)这个是行。但是每一次都要自己这样写一次,太麻烦,
有没有简单一点的,像这样:DemoThread thread = new DemoThread()会自动调用到我自己的加载器MyClassLoader。?
...全文
220 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
Helen1978 2012-04-27
  • 打赏
  • 举报
回复
我也想问这个问题,我现在用smartfoxserver开发游戏,我自己写的类(不是扩展类),每次修改代码后,需要重启smartfoxserver服务器才能生效。听说要自己写一个ClassLoader来解决。
树成 2009-05-13
  • 打赏
  • 举报
回复
你用一个ClassLoader加载一个类以后,这个类所引用的类全部都由这个ClassLoader加载(也可能由它的父ClassLoader加载),这个你可以去查看ClassLoader的工作原理。

还有,ClassLoader是负责把类加载到虚拟机,但是实例化对象跟类加载没有什么关系。

最后,利用ClassLoader加载类到虚拟机,请不要用反射中的forName()方法来加载类,而应该是使用你实现的ClassLoader内的 loadClass()方法来加载类。

最后,我想要问你,你为什么要自己实现类加载器?难道java虚拟机默认所提供的类加载不能够满足你的要求么?很显然你对类加载器的工作原理与适用范围不是很理解,或许你想要学习类加载器,你首先要理解它能干什么才行。
ican20 2009-05-13
  • 打赏
  • 举报
回复
你能说得更清楚一点吗?
我说的是自动调用,非人工的
MT502 2009-05-13
  • 打赏
  • 举报
回复
使用java.lang.instrument实现一个java agent,然后运行时加参数-javaagent,用这种方式应该做到
就相当于aspectj的LTW
pathuang68 2009-05-13
  • 打赏
  • 举报
回复
高深,学习了
一头头 2009-05-13
  • 打赏
  • 举报
回复
没几个类是可以的 你这个不可以

下面的可以
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

weixin663 2009-05-12
  • 打赏
  • 举报
回复
不晓得,帮你定个

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧