3

我正在尝试为我的 java 应用程序创建一个模块系统,它将在目录中加载模块(只是 jar 文件)。如果主类在 com.example.core 中并且主类名为“Main”,则每个模块中都会有一个 config.yml 以链接到主类 IE,则它会包含 com.example.core.Main . 我有它来加载 yml 文件,我可以得到这个属性,但我不知道如何从 jar 文件中加载类。主类将扩展模块加载器应用程序中的一个类,名为“Module”,因此我需要保留该实例并将其放在 Map 中,但所有实例都将扩展 Module。这类似于 Bukkit 所做的 ( http://bukkit.org )。

谢谢你的帮助,
巴特

4

1 回答 1

0

你的意思是你需要从一个目录动态加载jar文件吗?

URLClassLoader 可能适合您的需要。

这是我的例子。

URL[] urls = ....
URLClassLoader loader = new URLClassLoader(urls);
Class<?> cls = loader.loadClass("com.example.core.Main");
Module module = (Module) cls.newInstance();

我希望这对你有用。

于 2013-08-15T03:24:24.093 回答