我正在尝试为我的java应用程序创建一个模块系统,它将在目录中加载Modules(Just jar文件)。如果主类在com.example.core中并且主类名为'Main',那么每个模块都将有一个config.yml链接到主类IE,它将包含com.example.core.Main 。我有它加载yml文件,我可以得到这个属性,但我无法弄清楚如何从jar文件加载类。主类将扩展模块加载器应用程序中的一个类,名为“Module”,因此我需要保留实例并将其放在Map中,但所有实例都将扩展Module。这类似于Bukkit所做的(http://bukkit.org)。
谢谢你的帮助,
巴特
答案 0 :(得分:0)
你的意思是你需要动态地从目录中加载jar文件吗?
URLClassLoader可能符合您的需求。
这是我的例子。
URL[] urls = ....
URLClassLoader loader = new URLClassLoader(urls);
Class<?> cls = loader.loadClass("com.example.core.Main");
Module module = (Module) cls.newInstance();
我希望这对你有用。