我在 java 运行时调用类时遇到问题
我基本上是在制作一个插件框架
它首先打开 plugin/Plugins.cfg 并将测试解析为映射。
cfg 文件中的 EX 文本
1 = 我的插件
2 = 插件2
(每个插件主类是:plugin.(插件名称).main.class)
正如您所看到的,它从地图加载每个值并尝试运行其主类
public static void loadPlugins()
{
int x = hackers.core.startup.InitializeGame.map.size();
for (int i = 1; i<=x;i++)
{
String className = hackers.core.startup.InitializeGame.map.get(i + "");
File file = new File(System.getProperty("user.dir") + File.separator + "plugins" + File.separator + className);
URL url = null;
try {
url = file.toURI().toURL();
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
URL[] urls = new URL[]{url};
ClassLoader cl = new URLClassLoader(urls);
try {
Class cls = cl.loadClass("plugin." + className + ".main");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(className);
}
}
Class cls = cl.loadClass("plugin." + className + ".main");
^line 给了我错误:java.lang.ClassNotFoundException:plugin.myplugin.main
有人知道这里出了什么问题吗?或者有什么建议,我已经查看了它的 API,但它让我感到困惑并且缺乏文档。
Your file
不指向有效的类或 jar 文件。
调试以下行;您会注意到它的路径不是文件系统中的现有路径。
File file = new File(System.getProperty("user.dir") + File.separator + "plugins" + File.separator + className);
我假设你忘记包括.class
in the className
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)