社区
Java EE
帖子详情
如何替换JVM中的ClassLoader
furies21
2004-12-27 02:04:58
我们为了防止CLASS的被盗用,想加密所有的class文件,加密后无法在用JVM自带的ClasLoader对CLASS文件进行加载。要对原ClassLoader进行扩展解密模块后才行,现在已经写好了带解密切继承ClassLoader的类,不知道如何替换JVM中原来的ClassLoader。
...全文
288
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
热
替换
技术
待写 转载于:https://www.cnblogs.com/Booker808-java/p/9240081.html
classLoader
卸载与
jvm
热部署
以下的相关介绍都是在未使用dcevm的情况
classLoader
的卸载机制
jvm
中
没有提供class及
classloader
的unload方法.那热部署及osgi
中
是通过什么机制来实现的呢?实现思路主要是通过更换
classLoader
进行重新加载.之前的
classloader
及加载的class类在没有实例引用的情况下,在perm区gc的情况下会被回收掉....
Java EE
67,535
社区成员
225,843
社区内容
发帖
与我相关
我的任务
Java EE
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
复制链接
扫一扫
分享
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章