我正在尝试为我的java应用程序创建一个模块系统,它将在目录中加载模块(只是jar文件)。每个模块中都会有一个 config.yml 来链接到主类 IE 如果主类位于 com.example.core 中并且主类名为“Main”,则其中将包含 com.example.core.Main 。我已经可以加载 yml 文件,并且可以获取此属性,但我无法弄清楚如何从 jar 文件加载类。主类将扩展模块加载应用程序中的一个类,名为“Module”,因此我需要保留该实例并将其放入 Map 中,但所有实例都将扩展 Module。这与 Bukkit 的做法类似 ( http://bukkit.org )。
感谢您的帮助,
巴特
最佳答案
您的意思是需要从目录动态加载jar文件吗?
URLClassLoader 可能适合您的需求。
这是我的例子。
URL[] urls = ....
URLClassLoader loader = new URLClassLoader(urls);
Class<?> cls = loader.loadClass("com.example.core.Main");
Module module = (Module) cls.newInstance();
希望这对您有用。
关于java - 在 Jar 文件中加载类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16363592/