bla*_*kin 8 java plugins system
我正在尝试使用java制作游戏,我需要一个服务器的插件系统......
我怎么能这样做,以便有一个名为plugins的文件夹,用户可以简单地删除那里的jar文件,我可以一次调用这些jar文件中的函数?
这暗示一个社区会制作我不知道的插件(所以我需要让它运行所有插件,即使我不知道插件名称)
(如果我不需要像jspf一样使用别人的框架,我将不胜感激)
Mar*_*ers 13
编写自己的插件基础结构很有趣,但完全不必要.这是一个已经解决的问题,你不会写出比已经存在并且在现场证明的更高质量的问题.我会说你选择你的战斗.
我之前尝试过JSPF,发现它非常容易使用.这来自于一个完全按照你要做的事情的人:我已经从头开始创建自己的插件基础设施(基本上是为了同一目的:动态加载迷你游戏),自己编写类加载和框架.如果我再次这样做,我会毫不犹豫地使用像JSPF这样的框架.
要从符合特定接口的目录中的jar中加载所有类(比如说Game
),它就像以下一样简单:
PluginManager pm = PluginManagerFactory.createPluginManager();
pm.addPluginsFrom(new File("plugins/").toURI());
Collection<Game> games = new PluginManagerUtil(pm).getPlugins(Game.class);
Run Code Online (Sandbox Code Playgroud)
IIRC对实施者的唯一要求Game
是用@PluginImplementation
注释标记.
然后:
for ( Game game : games ) {
game.someMethod();
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3831 次 |
最近记录: |