jjzjj

java - 在 Java 中实现动态插件

我想在Java应用程序中实现动态插件功能。理想情况下:应用程序将使用类似getCapabilities()的方法定义接口(interface)Plugin。一个插件可以是一个JARpluginX.jar,其中包含一个类PluginXImpl实现Plugin(可能还有其他一些)。用户会将pluginX.jar放在一个特殊的目录中或设置指向它的配置参数。用户不一定必须在其类路径中包含pluginX.jar。应用程序会找到PluginXImpl(可能通过JARlist,也可能通过反射)并将其添加到注册表。客户端可以获得PluginXImpl的实例,例如,通过调用类似getPluginWith

java - Java 8 模块与 OSGi 有何不同?

带有ProjectJigsaw的Java8为SDK带来了一个模块系统。我认为这是一件好事,因为它是软件包的一部分(内置)。OSGi也提供了一个模块系统,但需要一个容器。但除此之外,它们之间的主要区别是什么。如果我使用OSGi,我能否使用标准JDK8版本运行它?当默认SDK包含此类功能时,OSGi是否相关?我的理解是OSGi和Jigsaw都可以用来编写普通的模块化Java应用程序,而不仅仅是基于ser的应用程序(servlet等),对吧?问题的答案OSGi,JavaModularityandJigsaw说Jigsaw模块系统可能是JRE所必需的。通过JRE,我假​​设OP是指Java标准

java - Java 8 模块与 OSGi 有何不同?

带有ProjectJigsaw的Java8为SDK带来了一个模块系统。我认为这是一件好事,因为它是软件包的一部分(内置)。OSGi也提供了一个模块系统,但需要一个容器。但除此之外,它们之间的主要区别是什么。如果我使用OSGi,我能否使用标准JDK8版本运行它?当默认SDK包含此类功能时,OSGi是否相关?我的理解是OSGi和Jigsaw都可以用来编写普通的模块化Java应用程序,而不仅仅是基于ser的应用程序(servlet等),对吧?问题的答案OSGi,JavaModularityandJigsaw说Jigsaw模块系统可能是JRE所必需的。通过JRE,我假​​设OP是指Java标准

java - org.osgi.framework.BundleException : Could not find bundle: org. eclipse.equinox.console

命令:\eclipse-SDK-4.2RC3-win32-x86_64_001\eclipse\plugins>java-jarorg.eclipse.osgi_3.8.0.v20120529-1548.jar-console异常(来自日志文件)!SESSION2012-06-2223:36:27.649-----------------------------------------------eclipse.buildId=unknownjava.version=1.6.0_25java.vendor=SunMicrosystemsInc.BootLoaderconstants:O

java - org.osgi.framework.BundleException : Could not find bundle: org. eclipse.equinox.console

命令:\eclipse-SDK-4.2RC3-win32-x86_64_001\eclipse\plugins>java-jarorg.eclipse.osgi_3.8.0.v20120529-1548.jar-console异常(来自日志文件)!SESSION2012-06-2223:36:27.649-----------------------------------------------eclipse.buildId=unknownjava.version=1.6.0_25java.vendor=SunMicrosystemsInc.BootLoaderconstants:O

java - 当每个人都对 OSGi 进行标准化时,为什么 Sun 还要发明另一个模块系统?

Sun在以Jigsaw的形式模块化JDK方面付出了很多努力。,并暗示它也应该是其他Java开发人员选择的模块格式。唯一值得注意的是NetBeans(和衍生应用程序)。另一方面,业界已经围绕OSGi进行了标准化,所有主要的应用程序供应商都将其运行时基于模块平台,甚至Sun自己的Glassfish。甚至还有一个NetBeans端口可以使用OSGi作为模块系统,而不是NetBeans自己的模块。甚至Maven也在努力成为OSGi运行时。仅仅是NIH、许可还是其他原因? 最佳答案 引用http://blogs.oracle.com/mr/e

java - 当每个人都对 OSGi 进行标准化时,为什么 Sun 还要发明另一个模块系统?

Sun在以Jigsaw的形式模块化JDK方面付出了很多努力。,并暗示它也应该是其他Java开发人员选择的模块格式。唯一值得注意的是NetBeans(和衍生应用程序)。另一方面,业界已经围绕OSGi进行了标准化,所有主要的应用程序供应商都将其运行时基于模块平台,甚至Sun自己的Glassfish。甚至还有一个NetBeans端口可以使用OSGi作为模块系统,而不是NetBeans自己的模块。甚至Maven也在努力成为OSGi运行时。仅仅是NIH、许可还是其他原因? 最佳答案 引用http://blogs.oracle.com/mr/e

java - 如何让代码模块化?

我有一些Java程序,现在我想知道它是否是模块化的,如果它是模块化的那么到什么程度,因为模块化永远不可能是二进制项,即0或1。我如何确定特定代码在很大程度上是模块化的。我想知道如何让代码更加模块化? 最佳答案 模块化的一些基准:你是多少次rewritingsimilarcode用于执行特定任务?你要多少钱refactoryourcode当您更改程序的某些部分时?文件是否小而容易浏览?是applicationmodules在需要时充分和独立地执行?您的代码是否灾难性最小?当您仅删除一个函数或变量时,所有的hell都会丢失吗?重命名类时

java - 如何让代码模块化?

我有一些Java程序,现在我想知道它是否是模块化的,如果它是模块化的那么到什么程度,因为模块化永远不可能是二进制项,即0或1。我如何确定特定代码在很大程度上是模块化的。我想知道如何让代码更加模块化? 最佳答案 模块化的一些基准:你是多少次rewritingsimilarcode用于执行特定任务?你要多少钱refactoryourcode当您更改程序的某些部分时?文件是否小而容易浏览?是applicationmodules在需要时充分和独立地执行?您的代码是否灾难性最小?当您仅删除一个函数或变量时,所有的hell都会丢失吗?重命名类时

java - 私有(private)包裹的处理方式是什么?

我已经使用OSGi有一段时间了,但我仍然不了解私有(private)包。导出的包是对其他包可见的包导入的包是由导出包的bundle导入的包。私有(private)包是对其他包不可见的包(我不明白)不是所有未导出的bundle对所有其他包都不可见吗?如果是这样,私有(private)包和不导出的包有什么区别?我已经阅读了OSGiinAction和“OSGi和ApacheFelix3.0-初学者指南”,但我无法找到其中的区别。 最佳答案 没有区别。Export-Package中未列出的任何包都是私有(private)的……仅此而已。您可