gpt4 book ai didi

java - ServiceLoader找不到插件

转载 作者:行者123 更新时间:2023-12-01 21:26:25 26 4
gpt4 key购买 nike

我有一个 ServiceLoader,它尝试加载任何扩展插件的内容。即使我设置了服务文件,它也没有找到任何东西。

源代码(com.otabi.firestar.pajamatale.plugin.loader.PluginFinder 是类):https://github.com/firestar115/PajamaTale

插件:https://github.com/firestar115/PajamaTest

我在这里做错了什么?为什么插件不显示并打印“Test Kappa”?

最佳答案

我可以确认 URLClassLoader 需要为每个代表 Pluginjar 提供一个 URL。使用包含 jar 文件的目录的 URL 来实例化类加载器是不够的。那么你需要做什么:

    File[] pluginFiles = directory.listFiles((File dir, String name) -> name.endsWith(".jar"));
List<URL> urlsList = new ArrayList<>();
for (File file : pluginFiles) {
try {
urlsList.add(file.toURI().toURL());
} catch (MalformedURLException e) {
e.printStackTrace();
}
}
URLClassLoader classLoader = URLClassLoader.newInstance(urlsList.toArray(new URL[]{}), Thread.currentThread().getContextClassLoader());

然后,ServiceLoader 将能够找到您的插件。

关于java - ServiceLoader找不到插件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38107830/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com