gpt4 book ai didi

java - 在 Java 中创建插件系统

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:39:12 25 4
gpt4 key购买 nike

我正在尝试使用 java 制作游戏,我需要一个服务器插件系统...

我怎样才能有一个名为 plugins 的文件夹,用户可以简单地将 jar 文件放到那里,我可以同时调用这些 jar 文件中的函数?

这意味着社区会制作我不知道的插件(所以我需要让它运行所有插件,即使我不知道插件名称)

(如果我不需要像jspf这样用别人的框架就感激不尽了)

最佳答案

编写您自己的插件基础结构很有趣,但完全没有必要。这是一个已解决的问题,您不会编写比已经存在并在该领域得到验证的质量更高的问题。我会说选择你的战斗。

我试过了 JSPF之前发现它非常容易使用。这来自于完全做了你想做的事情的人:我从头开始制作了我自己的插件基础设施(出于基本相同的目的:动态加载迷你游戏) ,自己编写类加载和框架。如果再来一次,我会毫不犹豫地使用像 JSPF 这样的框架。

要从符合特定接口(interface)的目录中的 jars 加载所有类(比如 Game),很简单:

PluginManager pm = PluginManagerFactory.createPluginManager();
pm.addPluginsFrom(new File("plugins/").toURI());

Collection<Game> games = new PluginManagerUtil(pm).getPlugins(Game.class);

IIRC 对Game 实现者的唯一要求是用@PluginImplementation 注释对其进行标记。

编辑

然后:

for ( Game game : games ) {
game.someMethod();
}

关于java - 在 Java 中创建插件系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7936730/

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