When this error occurs Error:(1, 1) java: module JavaFX reads package java.awt from both java.desktop and java.datatransfer
When this error occurs Error:(1, 1) java: module JavaFX reads package java.awt from both java.desktop and java.datatransfer
项目名称-JavaFX
模块-info.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 到模块,如下图所示:
简单删除它,awt 只能从桌面读取。
我明白这个问题并不是对发生了什么的最深入的解释,所以如果有人想详细说明,我会很高兴。
项目名称-JavaFX
模块-info.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 到模块,如下图所示:
简单删除它,awt 只能从桌面读取。
我明白这个问题并不是对发生了什么的最深入的解释,所以如果有人想详细说明,我会很高兴。