2个类 A B ,如果A用到了B 那么就由A的那个类加载器来加载B
我们知道在java中所有的类都是通过类加载器来加载的 , 那么我们当然也可以自己写我们的类加载器 来家在我们指定的类 。
所有的 类加载器都要继承自ClassLoader这个类 , 并且覆盖findClass ,这个ClassLoader类 的loadClass会调用findClass方法来查找指定类 。
我们知道类加载器的加载原理是 自上而下 的树形 ,也就是先用 BootStrap ----> ExtClassLoader--->AppClassLoader---->如果这三个加载器都找不到的话 那么才会调用我们自己写的类加载器加载 class文件 。
对于Eclipse的相对目录是相对于Eclipse中的工程 ,绝对路径是指 class文件在磁盘上的完整存储路径
import java.io.ByteArrayOutputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Date;
public class MyClassLoader extends ClassLoader
{
public static void main(String[] args) throws Exception
{
// Temp t=new Temp() ;
// FileInputStream fis=new FileInputStream("E:\\workspace\\TestNew\\bin\\Temp.class") ;
// FileOutputStream fos=new FileOutputStream("lib\\Temp.class") ;
// encript(fis,fos);
Class cls=new MyClassLoader("lib").loadClass("Temp") ;
Date dt=(Date)cls.newInstance() ;
System.out.println(dt.toString());
}
public static void encript(InputStream in,OutputStream out) throws Exception
{
int b=-1 ;
while((b=in.read())!=-1)
{
out.write(b^0xff) ;
}
}
@Override
protected Class<?> findClass(String name) throws ClassNotFoundException
{
String filePath=this.classDir+"\\"+name+".class" ;
try {
FileInputStream fis=new FileInputStream(filePath) ;
ByteArrayOutputStream bos=new ByteArrayOutputStream() ;
encript(fis,bos);
byte []bt=bos.toByteArray() ;
System.out.println("Load ing");
return defineClass(bt,0,bt.length) ;
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
private String classDir;
public MyClassLoader(String classDir)
{
this.classDir=classDir ;
}
}
分享到:
相关推荐
Java Class加密器是广州市敏创信息科技有限公司在保护自己的Java软件过程中积累的一套实用工具,可以有效地对Java Class进行加密,达到保护自己知识产权的目的。 工具对编译后的二进制字节码进行加密,当Tomcat等...
Java生成密钥、保存密钥的实例源码,通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生双钥的密钥对(keyPair)、如何保存公钥的字节数组、保存私钥到文件privateKey.dat、如何用Java对象序列化保存私钥...
可以将CLASS文件加密,用反编译工具反编译不过来. 不是混淆器,是加密.比混淆器好很多. ...agentlib:c:\windows\classloader %JAVA_OPTS%,保存setenv.bat文件,重新启动Tomcat后就可以正确加载加密类了。
Java生成密钥、保存密钥的实例源码,通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生双钥的密钥对(keyPair)、如何保存公钥的字节数组、保存私钥到文件privateKey.dat、如何用Java对象序列化保存私钥...
jShield是本人基于自定义类加载器技术开发的Java代码保护工具,可以加密保护Jar包或Class文件,适合需要保护Java程序的朋友使用和研究。 jShield是一款WinForm工具,通过图形化界面导入jar包或class文件后,即可...
这就是保护的办法不多,而且大多数不是很好用,这样自己辛苦开发出来的程序很容易被人反编译过来而据为己有,一般情况下,大多数的人都是用混编器(java obfuscator)来把开发出来的程序进行打乱以达到没有办法来反...
Java生成密钥、保存密钥的实例源码,通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生双钥的密钥对(keyPair)、如何保存公钥的字节数组、保存私钥到文件privateKey.dat、如何用Java对象序列化保存私钥...
Java生成密钥、保存密钥的实例源码,通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生双钥的密钥对(keyPair)、如何保存公钥的字节数组、保存私钥到文件privateKey.dat、如何用Java对象序列化保存私钥...
Java生成密钥的实例 1个目标文件 摘要:Java源码,算法相关,密钥 Java生成密钥、保存密钥的实例源码,通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生双钥的密钥对(keyPair)、如何保存公钥的字节数组、...
Java生成密钥、保存密钥的实例源码,通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生双钥的密钥对(keyPair)、如何保存公钥的字节数组、保存私钥到文件privateKey.dat、如何用Java对象序列化保存私钥...
Java生成密钥、保存密钥的实例源码,通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生双钥的密钥对(keyPair)、如何保存公钥的字节数组、保存私钥到文件privateKey.dat、如何用Java对象序列化保存私钥...
Java生成密钥的实例 1个目标文件 摘要:Java源码,算法相关,密钥 Java生成密钥、保存密钥的实例源码,通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生双钥的密钥对(keyPair)、如何保存公钥的字节数组、...
AutoTips是为解决应用系统对于【自动提示】的需要(如:Google搜索), 而开发的架构无关的公共控件, 以满足该类需求可以通过快速配置来开发。AutoTips基于搜索引擎Apache Lucene实现。AutoTips提供统一UI。 WAP浏览器...
AutoTips是为解决应用系统对于【自动提示】的需要(如:Google搜索), 而开发的架构无关的公共控件, 以满足该类需求可以通过快速配置来开发。AutoTips基于搜索引擎Apache Lucene实现。AutoTips提供统一UI。 WAP浏览器...
AutoTips是为解决应用系统对于【自动提示】的需要(如:Google搜索), 而开发的架构无关的公共控件, 以满足该类需求可以通过快速配置来开发。AutoTips基于搜索引擎Apache Lucene实现。AutoTips提供统一UI。 WAP浏览器...
AutoTips是为解决应用系统对于【自动提示】的需要(如:Google搜索), 而开发的架构无关的公共控件, 以满足该类需求可以通过快速配置来开发。AutoTips基于搜索引擎Apache Lucene实现。AutoTips提供统一UI。 WAP浏览器...
AutoTips是为解决应用系统对于【自动提示】的需要(如:Google搜索), 而开发的架构无关的公共控件, 以满足该类需求可以通过快速配置来开发。AutoTips基于搜索引擎Apache Lucene实现。AutoTips提供统一UI。 WAP浏览器...
AutoTips是为解决应用系统对于【自动提示】的需要(如:Google搜索), 而开发的架构无关的公共控件, 以满足该类需求可以通过快速配置来开发。AutoTips基于搜索引擎Apache Lucene实现。AutoTips提供统一UI。 WAP浏览器...
AutoTips是为解决应用系统对于【自动提示】的需要(如:Google搜索), 而开发的架构无关的公共控件, 以满足该类需求可以通过快速配置来开发。AutoTips基于搜索引擎Apache Lucene实现。AutoTips提供统一UI。 WAP浏览器...