[英]Load dynamicly external classes from a extracted war file
这个问题很受欢迎,但我找不到避免“java.lang.ClassNotFoundException”的方法。
我已经实现了一个动态加载一些外部类的方法(我在提取一个war文件后得到)
Class<?> classGetter() {
URL url;
Class<?> cls = null;
try {
String className=new Substringer(entireFilePath.getName(), 5).output;
String classPath=new
Substringer(entireFilePath.getAbsolutePath(),5+className.length()).output;
File classDirPath = new File(classPath);
url = classDirPath.toURI().toURL();
URL[] urls = new URL[]{url};
URLClassLoader cl = new URLClassLoader(urls);
cls = cl.loadClass(packageGetter()+"."+className);
cl.close();
} catch (ClassNotFoundException | IOException e) {
e.printStackTrace();
}
return cls;
}
同样的异常仍然一次又一次地出现。 这是堆栈跟踪:
java.lang.ClassNotFoundException: bber.Counter
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at earviewer.ClassesLoaser.classGetter(ClassesLoaser.java:48)
at earviewer.ClassesLoaser.main(ClassesLoaser.java:58)
Exception in thread "main" java.lang.NullPointerException
at earviewer.ClassesLoaser.main(ClassesLoaser.java:59)
当您提供 class 的完全限定名称但尝试将其加载到 package 中时,会发生此错误。 我们应该 select class 文件的路径而不进入 package 文件夹
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.