我有一个类,我想通过绝对路径加载该类,但我得到ClassNotFoundException。我经历了很多这样的线程,发现从绝对路径加载类是不正确的。
InputStream stream = new Check().getClass().getResourceAsStream(clazz+".class");
OutputStream os = new FileOutputStream(new File("D:\\deep.class"));
byte[] array = new byte[100];
while(stream.read(array) != -1){
os.write(array);
}
os.close();
stream.close();
Object obj = Class.forName("D:\\deep.class").newInstance();//getting exception here
System.out.println(obj instanceof Check);
答案 0 :(得分:3)
您需要使用URLClassLoader
在此用例中加载类
URLClassLoader urlClassLoader = URLClassLoader.newInstance(new URL[] {
new URL(
"file:///D:/"
)
});
Class clazz = urlClassLoader.loadClass("deep");