2013-05-03 85 views
2

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

感谢您的帮助,
巴特

回答

0

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

URLClassLoader可能适合您的需求。

这是我的例子。

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

我希望这会对你有用。