在Jar文件中加载类

时间:2013-05-03 16:29:30

标签: java class jar load

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

谢谢你的帮助,
巴特

1 个答案:

答案 0 :(得分:0)

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

URLClassLoader可能符合您的需求。

这是我的例子。

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

我希望这对你有用。