java - 如何通过将 --patch-module javac 选项传递给我的项目编译器来使 Eclipse 在 JDK 9+ 上编译修补模块?(见图)
问题描述
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
UI 已在 Eclipse 2019-06 中进行了改进,因此我建议升级 Eclipse(如果尚未完成)。然后,您将在Java Build Path 配置对话框中找到一个名为“Module Dependencies”的新选项卡,您可以在其中将项目标记为 patching java.base
。(旧版本 Eclipse 的方法是:在要修补的库下方找到一个节点“ Is Modular ”并编辑(双击)其详细信息。此模式在迁移期间仍然支持,但不再推荐) .
第三,用于构建/编译的 Java 构建路径(顾名思义 :))在启动时也应该受到尊重。为了确保编译时和运行时看到相同的选项集,两个对话框(Java Build Path和Run as ...)都有一个按钮,用于显示配置选项的文本形式(在构建路径配置中称为 JPMS 选项)。
推荐阅读
- python - 将包含日期时间范围的 Pandas 数据框行转换为新的数据框,每个日期都有一行以及该日期包含的小时数
- asp.net-core-2.0 - 尝试确定托管应用程序的 dotnet.exe 的进程 ID 时发生错误。任务已取消
- vba - 如何使用循环迭代在循环中引用类似的命名文本框
- wordpress - 如何使用wordpress加速浏览器的缓存?
- c++ - 创建 3 个子进程并在指定秒数后退出它们
- javascript - 滚动时如何向右或向左移动div?
- vue.js - 如何强制文件夹中的路由位于 Nuxt 中的 /index
- vba - Documents.open 并保持格式
- apache-camel - 骆驼 - spring:bean 语法与动态类转换
- c# - ML.NET 回归 FastTree 预测始终返回 0