当前位置: 首页 > 知识库问答 >
问题:

在IntelliJ中,每个模块重写编译器参数的含义是什么?

万俟财
2023-03-14

我是Intellij的新手。覆盖每个模块的编译器参数的含义是什么?如果我删除参数会发生什么?更多细节的屏幕快照。

共有1个答案

令狐宏伟
2023-03-14

奇怪的是,在Idea help Guide中,目前并没有记录对话框中的这一部分“重写每个模块的编译器参数”。

它所做的是在编译指定模块时向javac编译器添加参数。

一个示例用法是允许编译器访问不是由您所依赖的模块(java平台模块,而不是IDE或Maven模块)导出的包中的类。

    null

您正在使用JavaFX WebView,并且希望监听WebView中运行的JavaScript生成的控制台消息。有一个类(com.sun.javafx.webkit.WebConsoleListener)允许侦听com.sun.javafx.webkit包中的控制台消息日志事件。但是这个包是私有的,是模块的内部API,不是由模块导出的。

因此,当您尝试使用WebConsoleListener类时,Idea只会用红色突出显示它,并给出一条消息,说明它在尝试编译时找不到该类。

为了解决这个问题,您可以在红线上按Alt+Enter,Idea将提示您是否要向模块编译选项添加导出语句,如果您说是,它将在此处记录该选项,例如,使用模块的“编译选项”如下:

--add-exports javafx.web/com.sun.javafx.webkit=com.example.webviewloadtest

在本例中,com.example.WebViewLoadTest是您自己在应用程序中使用的自定义模块名(module-info.java文件中的模块名)。

一旦完成,在编译过程中,指定包中的类将对模块可见,IDE将不再以红色突出显示WebConsoleListener类的导入和使用(因为IDE中的智能编辑器现在也知道该类,因此可以在编辑过程中执行错误检查,并自动完成其方法,等等)。

请注意,在“按模块重写编译器参数”选项中指定的选项只是编译器选项,它们不是运行时选项。

如果还希望本例中的类在运行时可见,还需要手动向用于运行应用程序的运行时配置的VM选项添加相同的--add-exports语句。

--add-exports javafx.web/com.sun.javafx.webkit=com.example.webviewloadtest

注意,Eclipse IDE还有一个类似于“重写每个模块的编译器参数”的特性,请参见:

  • 编译时如何告诉eclipse添加导出
 类似资料:
  • 我将IDE从Eclipse更改为IDEA。我正在尝试将其配置为尽可能有效地工作。我有以下问题。我希望IDEA在一个文件被更改并导致问题后,自动显示所有有编译错误的文件。我安装了IntelliJ Eclipse模式插件并选择了Eclipse编译器,但我仍然存在以下问题:在模块接口中,我有一个接口—假定InterfaceA。它的实现包含在module-implementation1 implement

  • 我已经阅读了悬而未决的文件: http://developer.android.com/reference/android/app/PendingIntent.html 发送功能定义为: 公共无效发送(上下文上下文、int代码、Intent意图、OnFinated onFined、处理程序处理程序、字符串所需权限) 代码:“返回PendingEvent目标的结果代码。” 让我困惑的是参数。我应该什

  • 我使用maven命令来清理、构建整个项目、创建war并部署到服务器。我不能使用Intellij来做这件事,因为我只有社区版。它在与intellij相同的目录中构建项目。 为了加快速度,我编写了一个脚本,可以在本地“target”目录中找到比服务器中更新的已编译文件,并进行复制。虽然一切正常,但问题是Intellij并没有将使用maven编译的类视为应该跳过并重新构建整个项目的类。 目前它的工作原理

  • 我只在Spring Boot项目中使用IntelliJ IDE。请注意,我没有使用任何Kotlin项目。但是,今天,我在下面有一个错误。任何专业人士。请帮忙解决这个问题!谢谢,错误:Kotlin:模块是用不兼容的Kotlin版本编译的。其元数据的二进制版本为1.5.1,预期版本为1.1.13。

  • 本章将介绍Rust编译器的参数。 Rust编译器程序的名字是rustc,使用它的方法很简单: $ rustc [OPTIONS] INPUT 其中,[OPTIONS]表示编译参数,而INPUT则表示输入文件。而编译参数有以下可选: -h, --help - 输出帮助信息到标准输出; --cfg SPEC - 传入自定义的条件编译参数,使用方法如 fn main() { if cfg!(he

  • 本文向大家介绍什么是ElasticSearch中的编译器?相关面试题,主要包含被问及什么是ElasticSearch中的编译器?时的应答技巧和注意事项,需要的朋友参考一下 编译器用于将字符串分解为术语或标记流。一个简单的编译器可能会将字符串拆分为任何遇到空格或标点的地方。Elasticsearch有许多内置标记器,可用于构建自定义分析器。