java - 在 Jar 文件中加载类

标签 java class jar load

我正在尝试为我的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/

相关文章:

java - Scala 和 Java 的类型安全构建器库

java - Junit 5 无法解析方法的参数

java - 从批处理文件中一一运行多个 jar 文件

c++ - 将对象添加到数组时出现 EXC_BAD_ACCESS

c++ - 如何从类中访问函数?

java - 如何使用外部类路径执行可运行的 jar?

java - Android inflated layout XML 文件创建运行时

c++ - 使用未声明的标识符 C++

java - 替换 jar 并重定向 import 语句

java - 在 NetBeans 中永久包含外部 jar