社区
Java EE
帖子详情
如何替换JVM中的ClassLoader
furies21
2004-12-27 02:04:58
我们为了防止CLASS的被盗用,想加密所有的class文件,加密后无法在用JVM自带的ClasLoader对CLASS文件进行加载。要对原ClassLoader进行扩展解密模块后才行,现在已经写好了带解密切继承ClassLoader的类,不知道如何替换JVM中原来的ClassLoader。
...全文
283
5
打赏
收藏
如何替换JVM中的ClassLoader
我们为了防止CLASS的被盗用,想加密所有的class文件,加密后无法在用JVM自带的ClasLoader对CLASS文件进行加载。要对原ClassLoader进行扩展解密模块后才行,现在已经写好了带解密切继承ClassLoader的类,不知道如何替换JVM中原来的ClassLoader。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
magicsnake
2004-12-28
打赏
举报
回复
了解一下
asjj
2004-12-27
打赏
举报
回复
现在已经写好了带解密切继承ClassLoader的类
----------------------
假定继承ClassLoader的类名为MyClass,假定你解密的类package为“my.test.MyTest”,并且假定MyTest里有个方法是public static void doMethod(String s){System.out.println(s);}
//开始:
MyClass mc=new MyClass();
byte[] code=...//得到解密后的MyTest.class
Class cls = mc.defineClass("my.test.MyTest", code, 0, code.length);
String s="随便写....";
java.lang.reflect.Method m=cls.getMethod("doMethod",new Class[]{s.getClass()});
m.invoke(null,new Object[]{s});//打印s
bboonnee
2004-12-27
打赏
举报
回复
自己重载ClassLoader方法
jFresH_MaN
2004-12-27
打赏
举报
回复
只要用你自己的ClassLoader类里面的load方法就行了啊
其实就是和默认的loader一样用
Jacky1206
2004-12-27
打赏
举报
回复
建议不要这样用,一般来说你不可能把所有的 class 类加密吧,没有那种必要,只要若干核心类加密就可以了,那么只需要使用 Class 类的 forName 方法,里面制定你的 classloader 就可以了
替换
jvm
虚拟机默认
classloader
本文介绍了两种在Java
中
使用自定义类加载器的方法。第一种方法是通过设置java.system.class.loader属性来运行
JVM
,并指定了自定义类加载器。第二种方法则是通过反射操作修改系统类加载器为自定义实现。
JVM
----
ClassLoader
热
替换
技术
本文内容暂未填写,敬请期待更新。
classLoader
卸载与
jvm
热部署
本文探讨了
JVM
中
ClassLoader
的卸载机制,解释了如何通过
替换
ClassLoader
实现类的重新加载,尤其是在热部署和OSGi环境
中
。讨论了Perm区GC的过程以及其对卸载的影响。
java
classloader
本文介绍了Java
ClassLoader
的工作原理,包括它的双亲委托模型,以及
JVM
中
Bootstrap、Extension和Application
ClassLoader
的层级关系。双亲委托模型确保了类加载的安全性,防止恶意
替换
核心类。此外,还讨论了
ClassLoader
如何动态加载class文件到内存,并解释了为何类加载时需要考虑类加载器。
JAVA基础 - 如何使用
ClassLoader
?
ClassLoader
是Java虚拟机的重要组成部分,负责将类的.class文件加载到
JVM
中
。Java有三种默认类加载器:BootStrap
ClassLoader
、Extension
ClassLoader
和Application
ClassLoader
。类加载遵循双亲委派模型,自定义
ClassLoader
通常需要重写findClass或loadClass方法。虽然可以实现类的热加载,但由于Java没有提供卸载已加载类的API,实际操作
中
需谨慎对待热
替换
操作。
Java EE
67,535
社区成员
225,851
社区内容
发帖
与我相关
我的任务
Java EE
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
复制链接
扫一扫
分享
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章