使用 Class.forName() 找不到 class
Can't find a class using Class.forName()
这是我的"test-addon"
我正在尝试加载我的 "main class" 使用:
Class<?> jarClass;
try {
ClassLoader cls = ClassLoader.getSystemClassLoader();
jarClass = cls.loadClass("main.Addon");
} catch (ClassNotFoundException e) {
throw new InvalidPluginException("\"Addon class\" was not found", e);
}
如图所示,class 存在,但仍然 returns:
第 21 行:jarClass = cls.loadClass("main.Addon");
问题:为什么会这样
包含 main.Addon
的 jar 或目录不在类路径中。
尝试Addon
(无包说明符)。在 Maven 风格的项目中,src/main
是根(默认)包。
问题是我使用的是 SystemClassLoader,而不是我自己的。
一个简单的解决方法是:jarClass = Class.forName("main.Addon", true, this);
这是我的"test-addon"
我正在尝试加载我的 "main class" 使用:
Class<?> jarClass;
try {
ClassLoader cls = ClassLoader.getSystemClassLoader();
jarClass = cls.loadClass("main.Addon");
} catch (ClassNotFoundException e) {
throw new InvalidPluginException("\"Addon class\" was not found", e);
}
如图所示,class 存在,但仍然 returns:
第 21 行:jarClass = cls.loadClass("main.Addon");
问题:为什么会这样
包含 main.Addon
的 jar 或目录不在类路径中。
尝试Addon
(无包说明符)。在 Maven 风格的项目中,src/main
是根(默认)包。
问题是我使用的是 SystemClassLoader,而不是我自己的。
一个简单的解决方法是:jarClass = Class.forName("main.Addon", true, this);