如何通过将 --patch-module javac 选项传递给我的项目编译器,使 Eclipse 在 JDK 9+ 上编译修补模块? (见图)
How to make Eclipse compile patched modules on JDK 9+ by passing the --patch-module javac option to my project compiler? (see pic)
Eclipse 必须允许这样做,因为来自 JDK 的 javac 允许它而不需要我联系 CIA 以获得许可。如果 eclipse 不允许这样做,那么其他 Java IDE 会允许我做什么。最坏的情况我只会使用 emacs 和终端。
截图:
大部分相关信息已经在评论中给出,我主要是用一些背景和一些链接来总结一下:
首先,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, so I suggest to upgrade Eclipse (if not already done). Then you will find a new tab in the Java Build Path configuration dialog 之类的选项称为 "Module Dependencies",您可以在其中将项目标记为正在修补 java.base
。 (旧版本 Eclipse 的方法是:在要修补的库下方找到节点“Is Modular”并编辑(双击)其详细信息。此模式仍然支持一个迁移期,但不再推荐)。
第三,用于 building/compiling(顾名思义 :) )的 Java 构建路径也应该用于启动。为了确保编译时和运行时看到相同的选项集,两个对话框 (Java Build Path 和 运行 as .. .) 有一个按钮用于显示配置选项的文本形式(在构建路径配置中称为 JPMS 选项)。
Eclipse 必须允许这样做,因为来自 JDK 的 javac 允许它而不需要我联系 CIA 以获得许可。如果 eclipse 不允许这样做,那么其他 Java IDE 会允许我做什么。最坏的情况我只会使用 emacs 和终端。
截图:
大部分相关信息已经在评论中给出,我主要是用一些背景和一些链接来总结一下:
首先,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, so I suggest to upgrade Eclipse (if not already done). Then you will find a new tab in the Java Build Path configuration dialog 之类的选项称为 "Module Dependencies",您可以在其中将项目标记为正在修补 java.base
。 (旧版本 Eclipse 的方法是:在要修补的库下方找到节点“Is Modular”并编辑(双击)其详细信息。此模式仍然支持一个迁移期,但不再推荐)。
第三,用于 building/compiling(顾名思义 :) )的 Java 构建路径也应该用于启动。为了确保编译时和运行时看到相同的选项集,两个对话框 (Java Build Path 和 运行 as .. .) 有一个按钮用于显示配置选项的文本形式(在构建路径配置中称为 JPMS 选项)。