无法使用Class.forName()找到一个类

时间:2015-04-09 18:56:20

标签: java classloader classnotfoundexception urlclassloader

这是我的" test-addon"

-

我正试图加载我的#34;主要课程"使用:

Class<?> jarClass;
try {
    ClassLoader cls = ClassLoader.getSystemClassLoader();
    jarClass = cls.loadClass("main.Addon");
} catch (ClassNotFoundException e) {
    throw new InvalidPluginException("\"Addon class\" was not found", e);
}

正如您在图像中看到的那样,该类存在,但它仍然返回: enter image description here

第21行:jarClass = cls.loadClass("main.Addon");

问题:为什么会发生这种情况

2 个答案:

答案 0 :(得分:2)

包含main.Addon的jar或目录不在类路径中。

尝试Addon(无包装说明符)。在Maven风格的项目中,src/main是根(默认)包。

答案 1 :(得分:1)

问题是我使用的是SystemClassLoader,而不是我自己的。

对此的一个简单修复是:jarClass = Class.forName("main.Addon", true, this);