java - 发生此错误时 Error :(1, 1) java.desktop 和 java.datatransfer 中的 java : module JavaFX reads package java. awt

标签 java javafx javafx-11 module-info

项目名称-JavaFX
模块信息.java

module JavaFX {
requires javafx.fxml;
requires javafx.controls;
requires java.desktop;
opens sample;

}

Controller .java
package sample;

import javafx.fxml.FXML;

import java.awt.Desktop;
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;

public class Controller {

    @FXML
    public void handleClick(){
        try{
            Desktop.getDesktop().browse(new URI("http://www.javafx.com"));
        } catch (URISyntaxException | IOException e) {
            e.printStackTrace();
        }
    }

}

我得到的错误:错误:(1, 1) java: 模块 JavaFX 从 java.desktop 和 java.datatransfer 读取包 java.awt
如何解决这个问题?

最佳答案

刚刚有同样的问题。根据 This IDEA Support Thread它可能有点像红鲱鱼错误消息。看起来模块文件实际上是正确的(即使 intellij 带你到那里),但问题实际上是因为 IDEA 添加了一个编译器参数,其中包含我们所做的所有 alt-enter(我们都这样做......)。

如果导航到设置 -> 构建、执行、部署 -> 编译器 -> Java 编译器并朝底部看,您将看到它已添加和 --exports of awt from datatransfer to the module,如下图所示:

Idea settings box

简单地删除它并且 awt 只能从桌面读取。

我明白这个问题并不是对正在发生的事情的最深入的解释,所以如果有人想详细说明它会很高兴。

关于java - 发生此错误时 Error :(1, 1) java.desktop 和 java.datatransfer 中的 java : module JavaFX reads package java. awt,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62307840/

相关文章:

java - 用于FXML布局的可重用常量?

java - 在Java中等效于curl命令

java - tomcat jar Java仅适用于8080

java - 在 JFXTreeTableView 单元格中换行

android - 在 Gluon Mobile 中导入 android 文件时出错

java - 缺少 Maven Shade JavaFX 运行时组件

java - 使用 gradle 6.3、OpenJDK 14 和 OpenJFX 14 部署 JavaFX 应用程序

java - 如何在 JavaFX11 中设置多个 ImageView 的样式以不违反 DRY

java - 在Elasticsearch的Java客户端中编写查询

java - 使用 Java 在 hdfs 中写入文件