问题标签 [java-platform-module-system]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
1431 浏览

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

Sun 在以Jigsaw的形式模块化 JDK 方面付出了很多努力,并暗示它也应该是其他 Java 开发人员选择的模块格式。使用它的唯一值得注意的参与者是 NetBeans(和衍生应用程序)。

另一方面,业界围绕 OSGi 进行了标准化,所有主要的应用程序供应商都将其运行时基于模块平台,甚至 Sun 自己的 Glassfish。甚至还有一个 NetBeans 端口可以使用 OSGi 作为模块系统,而不是 NetBeans 自己的模块。甚至 Maven 也在努力成为一个 OSGi 运行时。

仅仅是 NIH、许可还是其他原因?

0 投票
1 回答
982 浏览

swing - Java 8 能否发布 Swing 的另一个版本?

考虑到 Java 8 的 Jigsaw 项目(以模块化 JDK),是否可以考虑“新”的 Swing框架

考虑意味着:

  • 有人真正重写它
  • 将其包含在 JDK 版本中

我在想,由于可以将模块包含在 JDK 中,因此可以创建一个新的 Swing 框架并将其交付给新的应用程序开发人员使用,而对于遗留应用程序,将包含当前的 Swing 框架。

重写一个新的 Swing 并将其包含到新的 JDK 中是 Java 8 的一个选项吗?(您对这项任务有什么看法和考虑?)

0 投票
3 回答
10134 浏览

java - OSGi、Java 模块化和拼图

因此,截至昨天早上,我对 OSGi 甚至是什么一无所知。OSGi只是我不断看到的一个流行词,所以我终于抽出一些时间来复习它。

它实际上看起来很酷,所以我想首先声明(记录在案)我在任何方面都不是反 OSGi,这也不是一些“抨击 OSGi”的问题。

归根结底,OSGi 似乎 - 基本上 - 解决了 Java 模块化的JSR 277,它认识到JAR文件规范存在缺陷,在某些极端情况下可能导致命名空间解析和类加载问题。OSGi 还做了很多其他非常酷的东西,但据我所知,这是它最大的吸引力(或其中之一)。

对我来说——作为一个相当新的(几年前)Java EE 开发人员,我们在 2011 年并且目前生活在 Java 7 时代,而且这些类加载问题仍然存在,这绝对是令人难以置信的;尤其是在企业环境中,一个应用服务器上可能有数百个 JAR,其中许多依赖于彼此的不同版本,并且都(或多或少)同时运行。

我的问题:

尽管我对 OSGi 很感兴趣,并且我想开始学习它以了解它在哪里/是否对我的项目有用,但我只是没有时间坐下来学习那么大的东西,至少现在。

那么当这些问题出现时,非 OSGi 开发人员应该怎么做呢?当前存在哪些Java (Oracle/Sun/JCP) 解决方案(如果有)?Jigsaw为什么会从J7中删减?Jigsaw 明年将在 J8 中实施的社区有多大把握?即使它还不是 Java 平台的一部分,是否有可能为您的项目获取 Jigsaw?

我想我在这里要问的是恐慌、阴谋和面子的结合。现在我终于明白了什么是 OSGi,我只是不“明白”像 Jigsaw 这样的东西是如何用了 20 多年才实现的,然后又是如何从一个版本中删除的。这似乎是基本的。

而且,作为一名开发人员,我也很好奇我的解决方案是什么,没有 OSGi。

另外,注意:我知道这不是一个“纯编程”类型的问题,但在你们中的一些人鼻子弯曲之前,我想声明(再次,为了记录)我故意提出这个问题所以。那是因为我对我的 SOers 同胞表示最大的尊重,我正在从我每天看到的一些“IT 之神”那里寻找架构级别的答案。

但是,对于那些绝对坚持用一些代码段支持 SO 问题的人:

(感谢任何可以权衡这个 OSGi/Jigsaw/classloader/namespace/JAR 地狱的东西的人!)

0 投票
5 回答
21042 浏览

java - 为什么项目 Jigsaw / JPMS?

Java 的包管理系统在我看来总是简单而有效。它被 JDK 本身大量使用。我们一直在使用它来模仿命名空间和模块的概念。

拼图项目(又名Java 平台模块系统)试图填写什么?

来自官方网站:

该项目的目标是为 Java SE 平台设计和实现标准模块系统,并将该系统应用于平台本身和 JDK。

0 投票
1 回答
11581 浏览

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

带有 Project Jigsaw 的 Java 8 为 SDK 带来了一个模块系统。我认为这是一件好事,因为它是软件包的一部分(内置)。OSGi 也提供了一个模块系统,但需要一个容器。但除此之外,它们之间的主要区别是什么。

如果我使用 OSGi,我能否使用标准 JDK 8 版本运行它?

当默认 SDK 包含此类功能时,OSGi 是否相关?我的理解是 OSGi 和 Jigsaw 都可以用来编写普通的模块化 Java 应用程序,而不仅仅是基于 ser 的应用程序(servlet 等),对吧?

对OSGi、Java Modularity 和 Jigsaw问题的回答说,JRE 可能需要 Jigsaw 模块系统。通过 JRE,我假​​设 OP 是指 Java 标准库,如 IO、CORBA、RMI,它们是用 Java 编写的,还是作为目标基础的类库实现?通过阅读 Jigsaw 项目页面,我认为是前者。如果是后者,它如何帮助其他编写 Java 代码的 Java 开发人员?类库是用 C/C++ 编写的。有人可以澄清一下吗?

这不是 OSGi vs Jigsaw。我想真正了解使用哪一个。如果我要编写一个新的应用程序(无论是桌面还是服务器),我希望基于可能不会被标准实现过时的技术并放弃软件。我并不是说 OSGi 已经过时,我喜欢 OSGi。我着眼于大局,OSGi 本身的未来方向是什么。

0 投票
1 回答
269 浏览

java - 项目拼图/Java平台模块系统

我目前正在评估为桌面应用程序开发插件概念的可能性。
在研究时,我发现了有关 OSGI 和 Java 平台模块系统(或 Project Jigsaw)的信息。
我对 Java 平台模块系统的规范有点困惑。

  • Java 平台模块系统是否允许像插件一样添加模块?
    是否可以声明可选模块并访问它们的服务?

  • 模块是否有可能拥有自己的类路径并与应用程序的其余部分分开?

  • 第三方程序员是否有可能实现无缝集成到现有应用程序中的插件?

如果有人能帮助我理解规范,我将不胜感激。

0 投票
0 回答
218 浏览

java - Jigsaw for Android 的效果是什么?

当我看到这条评论时,我正在阅读Junit-Lambda wiki最近的变化。

我们应该考虑使用 Jigsaw 进行模块化吗?

[...] 在核心代码中要求 Jigsaw 意味着 JUnit 无法在 Android 上运行

我想知道当 Jigsaw 应用于 Android 时究竟会发生什么问题?

jdk9 之后的库会不再在 Android 上运行吗?

考虑到 Android 开发的库是否可以与“拼图”代码一起使用?

谷歌搜索这会带来各种应用程序,所以这无济于事。

0 投票
0 回答
872 浏览

java - 删除(或重命名)gradle java sourceSet

我想重命名默认的 gradle java sourceSet main。据我所知,这不是直接可能的,但我虽然应该能够创建一个新的 sourceSet 和 delete main,如:

这运行没有错误,但 gradle 仍然编译所有内容src/main/java,并忽略src/foo.bar/java. 我究竟做错了什么?

(如果有人想知道为什么这个奇怪的名字foo.bar:我正在试验 JDK 1.9 “Jigsaw”,而新的 Java 模块需要带点的目录名。)

0 投票
2 回答
1385 浏览

java - Java 9 ea 中是否存在启动时间回归?

我听说过

  1. 每个主要版本都使 JVM 变得更快(在某些方面)
  2. 9 的模块化将带来更快的启动时间。

为了加快 Maven 构建速度,我下载jdk9-ea了它并发现它需要更长的时间。此外,感觉在 Maven 启动之前还有更长的延迟。

我尝试使用以下代码粗略测量 JVM 启动时间

从 Java 9 开始需要两倍的时间

注意:最初我使用的是服务器虚拟机(x64),同样的 2x 间隔,Java9 启动时间约为 0.6 秒。


java -Xshare:dump

使用 Java 8 EA

错误信息:

50 次中的 44 次成功开始是我能得到的最高数字。最低的是 - 13。

0 投票
2 回答
1485 浏览

java - Java 9 中会出现循环模块依赖吗?

在 Java 9 中,是否允许使用循环模块?如果不是,原因是什么?