3

项目名称

-JavaFX module-info.java

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

控制器.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
如何解决这个问题?

4

1 回答 1

3

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

如果您导航到设置 -> 构建、执行、部署 -> 编译器 -> Java 编译器并查看底部,您将看到它已添加和 --exports 从数据传输到模块,如下图所示:

想法设置框

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

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

于 2020-06-18T10:07:08.240 回答