当前位置: 首页 > 面试题库 >

如何创建一个可插入的Java程序?

燕翔飞
2023-03-14
问题内容

我想创建一个可以用插件扩展的Java程序。我该怎么做?我应该在哪里寻找?
我有一组插件必须实现的接口,它应该在一个jar中。程序应该在relative(相对于程序)文件夹中观察新的jar并以某种方式注册它们。
虽然我确实喜欢EclipseRCP,但我认为它对于我的简单需求来说太多了。
春天也是一样,但既然我无论如何都要看,我还是试试看吧。
不过,我还是希望能找到一种尽可能简单的方法来创建我自己的插件“框架”。


问题答案:

我曾经为我以前写过的软件做过这个,非常方便。我首先创建了一个接口,我所有的插件类都需要实现这个接口。然后我使用Java类加载器加载这些类并创建它们的实例。
你可以这样做:

File dir = new File("put path to classes you want to load here");
URL loadPath = dir.toURI().toURL();
URL[] classUrl = new URL[]{loadPath};

ClassLoader cl = new URLClassLoader(classUrl);

Class loadedClass = cl.loadClass("classname"); // must be in package.class name format

已经加载了类,现在需要创建它的实例,假设接口名为MyModule:

MyModule modInstance = (MyModule)loadedClass.newInstance();


 类似资料:
  • 问题内容: 我想创建一个可以用插件扩展的Java程序。我该怎么办?我应该在哪里找? 我有一组插件必须实现的接口,它应该在jar中。该程序应在相对(相对于该程序)文件夹中监视新的jar,并以某种方式注册它们。 尽管我确实喜欢Eclipse RCP,但我认为这对于我的简单需求来说实在太多了。 对于Spring同样适用,但是既然我还是要研究它,我不妨尝试一下。 但是,我仍然希望找到一种方法来尽可能简单地

  • 问题内容: 我已经在JCreator中编写了Java程序,一切都已完成,但是我想从中创建一个可执行文件,即,我不想通过加载Java类并编译然后执行来运行程序,而是将其作为独立的可执行文件。 最快的方法是什么? 问题答案: 你可以使用SDK附带的jar工具,并创建该程序的可执行版本。 这就是完成的方式。 我将从命令提示符中发布结果,因为它更容易,但是使用JCreator时也应如此。 首先创建你的程序

  • 问题内容: 开始听说“ POJO”(普通的旧Java对象)。我用谷歌搜索,但仍然不太了解这个概念。谁能给我关于POJO的清晰描述? 考虑带有变量“ id,名称,地址,薪水”的“人员”类-在这种情况下我将如何创建POJO?代码在POJO下方吗? 问题答案: POJO只是一个普通的,已删除限制的Java Bean。Java Bean必须满足以下要求: 默认的无参数构造函数 对于名为foo的可变属性,遵

  • 在正方形应该移动的地方初始化。KeyListener继承自GameAssistant(JFrame是用KeyListener创建的) }

  • 问题内容: 我想创建一个可以分为多个模块的应用程序,它们各自具有路由功能。用户可以从应用程序主模块打开和关闭这些模块。 我是否必须加载所有模块并根据用户是否已订阅禁用该模块。我认为这会减慢应用程序的加载,因为加载了所有模块代码并在应用程序引导时注入。 还有其他替代方法可以解决此问题吗? 问题答案: 应该为主要模块提供已启用模块的列表: 显然,无法正常加载array ,因为此时应用程序尚未启动。XH

  • 我有一个jobIntentService创建一个文件以便在其中添加一些文本,但我得到错误。我不知道我做错了什么...下面是我的代码: 谢谢你的帮助!