java - 如何通过将 --patch-module javac 选项传递给我的项目编译器,使 Eclipse 在 JDK 9+ 上编译修补模块? (见图)

标签 java eclipse java-9 java-11

Eclipse 必须允许这样做,因为 JDK 中的 javac 允许这样做,而不需要我联系 CIA 以获得许可。如果 Eclipse 不允许这样做,那么其他 Java IDE 会允许我这样做吗?最坏的情况我将只使用 emacs 和终端。

截图: enter image description here

最佳答案

大部分相关信息已经在评论中给出,我主要用一些背景知识和一些链接来总结:

首先,Eclipse 不接受源文件夹中名为 java.base 的文件夹。这种布局被 javac 的多模块模式使用,但在像 Eclipse 这样的 IDE 中不需要这种模式,因为我们有用于对模块进行分组的项目。特别是 Eclipse 要求每个项目最多包含一个模块。现在您可以自由地 (a) 将 src/main/java/java.base 定义为源文件夹,或 (b) 将其内容向上移动一层(以便包直接从 开始>src/main/java 和过去一样)。

其次,用于设置选项,如 --patch-module the UI has been revamped in Eclipse 2019-06 ,因此我建议升级 Eclipse(如果尚未完成)。然后您会在 Java Build Path configuration dialog 中找到一个新选项卡。称为“模块依赖项”,您可以在其中将项目标记为修补 java.base。 (旧版本 Eclipse 的方法是:在您要修补的库下方找到节点“Is Modular”并编辑(双击)其详细信息。此模式仍然支持迁移期,但不再推荐)。

第三,用于构建/编译(顾名思义 :) )的 Java 构建路径也应该用于启动。为了确保编译时和运行时看到相同的选项集,两个对话框(Java Build PathRun as ...)都有一个用于显示文本的按钮配置选项的形式(在构建路径配置中称为 JPMS 选项)。

关于java - 如何通过将 --patch-module javac 选项传递给我的项目编译器,使 Eclipse 在 JDK 9+ 上编译修补模块? (见图),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57298183/

相关文章:

java - JShell <Shift+tab i> 在 jdk 9 中无法正常工作

eclipse - Eclipse何时会原生支持Java 9?

java - 使用局部变量作为参数的模拟内部方法

java - Apache Spark 网络端口配置

java - Google Web Toolkit Eclipse @Persistent(序列化 ="true")未在构造函数中更新

java - RHEL Eclipse 无法加载 JNI 共享库 libjvm.so

java - Spring Rest 模板 - 响应主体为空

java - 使用 servlet 更新文本字段

eclipse - 如何创建 MyEclipse 快捷方式来打开多个工作区?

compiler-errors - 使用 JDK 9 - 167 编译错误