Java 8 模块与 OSGi 有何不同?
Java 8 和 Project Jigsaw 为 SDK 带来了一个模块系统。我认为这是一件好事,因为它是软件包(内置)的一部分。OSGi还提供模块系统,但需要容器。但除此之外,它们之间的主要区别是什么。
如果我使用 OSGi,我是否能够使用标准 JDK 8 发行版运行它?
当默认 SDK 包含此类功能时,OSGi 是否相关?我的理解是,OSGi和Jigsaw都可以用来编写普通的模块化Java应用程序,而不仅仅是基于serve的应用程序(servlet等),对吧?
对OSGi,Java Modularity和Jigsaw的问题的答案表明Jigsaw模块系统对于JRE可能是必要的。通过JRE,我假设OP意味着用Java编写的Java标准库,如IO,CORBA,RMI,或者它是作为目标的类库实现的基础?通过阅读Jigsaw项目页面,我认为是前者。如果是后者,它如何帮助其他编写Java代码的Java开发人员?类库是用 C/C++ 编写的。任何人都可以澄清一下吗?
这不是OSGi与Jigsaw。我想真正了解要使用哪一个。如果我要编写一个新的应用程序(无论是桌面还是服务器),我希望基于可能不会被标准实现淘汰并放弃软件的技术。我不是说OSGi已经过时了,我喜欢OSGi。我正在着眼于大局,OSGi本身的未来方向是什么。