我有一个abc.jar,我正在使用反射加载一个类。但是我得到了ClassNotFoundException。我的代码如下:
File file1 = new File(ApplicationContext.getPath()+"lib/abc.jar");
Class noparams[] = {};
URL url = file1.toURI().toURL();
URL[] urls = new URL[]{url};
@SuppressWarnings("resource")
ClassLoader cl = new URLClassLoader(urls);
cls = cl.loadClass("com.abcd.feat.udf.MobileUDF");
Constructor<?> c = cls.getConstructor();
mobileUDFActions = c.newInstance();
我已经验证了jar存在于ApplicationContext.getPath()/ lib文件夹中。
jar的内容是合适的。它包含com / abcd / feat / udf包中的类。
请帮我弄清楚这是什么错误。我超越了例外。
java.lang.ClassNotFoundException: com.abcd.feat.udf.MobileUDF
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at com.abcd.feat.core.TestScriptExecutor.<init>(TestScriptExecutor.java:85)