社区
Java SE
帖子详情
一个类新加载覆盖原始加载的类的问题
tombow
2010-04-02 06:33:52
我用ASM修改了类,生成了类byte[],最后通过ClassLoader defineClass方法生成了类,请问我怎样将新生成的类,代替Web已经加载的类呢??
...全文
215
15
打赏
收藏
一个类新加载覆盖原始加载的类的问题
我用ASM修改了类,生成了类byte[],最后通过ClassLoader defineClass方法生成了类,请问我怎样将新生成的类,代替Web已经加载的类呢??
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
15 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
tombow
2010-04-08
打赏
举报
回复
看来,这问题是解决不了的了,改问一个别的问题!
JSP里怎样判断客户端与服务器端是否已断开连接..ASP里有个IsClient....属性..
ChDw
2010-04-07
打赏
举报
回复
如果你需要动态加载和覆盖,你应该不断new新的ClassLoader出来,必须用这个新的ClassLoader来定义你的类。这样就可以每次替换了
你原始代码看到的是接口或者基类,
tombow
2010-04-07
打赏
举报
回复
替换了,还是不行.
p2p81
2010-04-07
打赏
举报
回复
你需要知道该类原来是用哪个加载器加载的,如果你修改后的类可以用该类原来的加载器加载的话,你就能把原来的类给替换掉,否则是替换不了的。
tombow
2010-04-07
打赏
举报
回复
Spring使用asm是怎样做的?
taolei
2010-04-06
打赏
举报
回复
怎样替换要你自己在Tomcat想办法。
javaagent是java的启动参数。详细用法见API文档里关于Package java.lang.instrument
tombow
2010-04-06
打赏
举报
回复
[Quote=引用 8 楼 taolei 的回复:]
如果要动态替换的话。
1、替换原来的类加载器
2、用javaagent
[/Quote]
怎样替换原来的加载器?
javaagent咋样用?
Brodie
2010-04-03
打赏
举报
回复
你不可能用一个新加载的类代覆盖旧类
tombow
2010-04-03
打赏
举报
回复
web 加载器 ClassLoader 的defineClass方法是受保护的,怎样将byte[] 转成 class呢??
taolei
2010-04-03
打赏
举报
回复
如果要动态替换的话。
1、替换原来的类加载器
2、用javaagent
taolei
2010-04-03
打赏
举报
回复
把byte[]写成.class文件,替换原来的类文件。
sharke118
2010-04-03
打赏
举报
回复
把这个类都用你自定义的同一个classloader 加载 就可以了吧
tombow
2010-04-03
打赏
举报
回复
不是我想要的.我的意思是:例如Tomcat的加载器加载了A.class,而我修改了A.class,产生了个新的class了,请问我该怎样将新的class覆盖原来的呢??新的A.class我是用不同的classLoader产生的.如果用同一加载器产生的可以覆盖的话,请问我有byte[]的类字节数组,怎样用A.class原来的加载器生成class呢?
Brodie
2010-04-02
打赏
举报
回复
首先用不同加载器加载的类是不同的,你不可能用一个新加载的类代覆盖旧类。
对于这个问题可能的解决方法是手动加载你的新类,
比如:
Object instance = new YourClassLoader().defineClass(bytes).newInstance();
Method m = instance.getclass().getmethod("method").
m.invoke(m, params);
只能通过全部的反射来做,应该是你想要的吧。否则会报CAST错的。
linfanhe
2010-04-02
打赏
举报
回复
不知道啊
maven-assembly-plugin 同名
类
覆盖
时遇到的一点
问题
maven-assembly-plugin 同名
类
覆盖
时遇到的一点
问题
背景:
一个
maven项目,依赖了一些jar包,我想修改某个jar包里面的某个
类
(比如: org.abc.classA)。由于它并没有提供很好的拓展入口,我选择投机取巧的方法,在当前项目下新建
一个
org.abc.classA
类
,实现我自己的逻辑。因为本地classes先于依赖的jar包被
加载
,同全限定
类
名只会被
加载
一次。所以就完成了对 org.abc.classA
类
的
覆盖
。 但是,实际打包后执行却发现
加载
的依旧是原来的
类
。 我.
YOLOv8 剪枝模型
加载
踩坑记:解决 YAML
覆盖
剪枝结构的
问题
模型剪枝是实现模型轻量化、加速推理的关键步骤。然而,在 Ultralytics YOLOv8 的生态中,在成功剪枝后,进行微调(Fine-tuning)时会遇到
一个
令人困惑的现象:明明
加载
的是剪枝后的模型(例如 20M 参数),但训练启动时打印的日志却显示为标准版模型的参数(例如 25M)。并且经过验证,微调后的模型参数就是标准的yolo模型。
加载
代码如下: 原因是Ultralytics 的 仍会先依据
原始
YAML 构建标准结构(约 25M 参数)。随后仅将 文件中的权重
加载
到这张标准结构中。问
历史项目依赖库Bugfix技巧-
类
覆盖
首先,优先推荐前两种方式进行
问题
修复,但是某些时候受制于时间、成本、风险等因素需要快速解决
问题
,这时,可以考虑第三种方案
类
覆盖
。需要特别注意的是,修改的方法可能会被多处调用,修改时需要充分考虑兼容性。
JavaScript中方法的
覆盖
问题
对于很多刚从Java学习过渡到JavaScript学习的同学来说在定义方法的
问题
上最头疼,我们Java人员来学习JavaScript是非常容易上手的,因为语法大部分都相同。但是定义方法是个例外,JavaScript中没有方法重载的概念,匹配方法只去比较方法名,这跟Java大相径庭。今天我们来剖析一下这个
问题
, 既然JavaScript中没有重载的概念,那么我们定义两个方法名相同的方法,会出现什...
Java SE
62,620
社区成员
307,251
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章