我想在Java中创建一个项目,作为自身其他部分的shell或框或控制器(可能有足够的命名)。我希望可以在安装程序后加载其他程序部分,比如插件或插件,或者如何调用它们。
作为一个例子,人们可以想到一个名为Calculator的程序,其顶部有一个MenuBar,可以加载几个提供不同计算方式的JFrame(或JInternalFrame),例如ListSums,InvoiceSums,BreakEvenCalculator,......(等等)上)。
现在我想要创建的是一种掩码,让我可以导入例如带有天气计算的新JInternalFrame。直接添加几个菜单条目和一组新面具。好吧,这种插件或插件应该从我提供的链接下载。
我已经尝试使用谷歌搜索某些方法来做到这一点,但我不太确定要搜索什么。
是否有任何网站提供有关如何创建此类插件或插件的信息?
为每一个乐于助人的灵魂提前干杯!
答案 0 :(得分:2)
由于你的问题不是很具体,我不确定我是否理解正确,但我会尽力回答。
我猜,你想在运行时动态加载java代码(不重启/重新编译你的程序)。
因此,有一些不同的方法可以实现这一目标:
<强> 1。拥有&#34;框架&#34;
您可以创建一个通用GUI,它可以动态生成GUI元素。然后通过自己的DSL或XML模块在模块中定义。然后根据您可以动态加载的定义生成GUI。我曾经使用过一次自动生成的GUI,用户可以自己生成动态报告,一次是通用的安装工具,它可以创建一个新的工作区,在一个案例中检查项目并构建&amp;部署和在tomcat中运行webapp。
<强>优点:强>
<强>缺点:强>
<强> 2。使用一些执行引擎(例如Rhino或Nashorn (Java 8))
您可以在JS中开发模块,并从某些模块生成GUI(如1.中所述) - 在Swing GUI的情况下我会这样做,甚至可以从JS创建输出(我会这样做)一个WebApp,因为它只是打印html)
<强>优点:强>
<强>缺点:强>
第3。 OSGi / Spring dm服务器
您也可以使用自己的包装在java中创建模块,并使用OSGi即时部署到您的应用程序中。
如果您希望将其用于WebApplication,我会查看Spring dm Server:http://static.springsource.com/projects/dm-server/1.0.x/programmer-guide/html/ch03s02.html
否则,OSGi应该更合适。
由于关于这两个主题的文档很多,我不会深入到这里。
<强>优点:强>
<强>缺点:强>
如果我的回答对您有所帮助,如果您接受,我会很高兴,如果没有,请提供更多详细信息,说明您想要达到的目标以及您的要求。
问候,曼努埃尔