错误:在顶级目录中找到Main.class(模块中不允许使用未命名的包)

问题描述 投票:0回答:4

尝试将应用程序更新到 Java 11,在对模块进行了一番排序后,我以为我已经摆脱了所有红色错误,现在我得到了这个我以前从未见过的错误:

环顾四周,我看到人们建议可以使用应用程序结构:

或 module-info.java 文件:

有人能看到我需要做什么才能摆脱这个吗?

编辑: 将 Main.java 移动到名为“main”的包并尝试运行它后出错:

java intellij-idea java-module openjfx module-info
4个回答
8
投票

为了让 JavaFx 启动您的应用程序,它需要访问其主类,因此您需要导出主类所在的包。

将导出声明添加到模块信息:

module Game.main {
    ...

    exports main;
}

0
投票

如果您的班级在
(default package)
下:

与具体问题无关。

您可能会在尝试运行包中的类

HelloWorld.java
时遇到此错误
(default package)

要解决此问题,请在

src
文件夹下创建一个新包(至少在一般情况下)为其命名,然后将您的类移至新包中并尝试再次运行它:

右键单击该类(在指定包下)-> 运行方式 -> Java 应用程序。


0
投票

在添加一些新类后尝试使用 javafx-maven-plugin 运行我的 javafx 应用程序时,我遇到了此异常。

执行

mvn clean
解决了问题。然后我成功执行了应用程序
mvn javafx:run


-2
投票

如果将类移动到不同的文件夹,在类声明行之前,您需要引用该类所在/应该位于的文件夹 - 告诉系统在哪里查找。例如:

//This line below is important
package main.java.main.Main;

public class Main extends Application {

    @Override
    public void start(Stage primaryStage) throws Exception {
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.