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

zte4gxcn  于 2023-03-07  发布在  其他
关注(0)|答案(3)|浏览(302)

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

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

或module-info.java文件:

有人知道我该怎么做才能摆脱它吗?
Edit:将www.example.com移动Main.java到名为'main'的包并尝试运行它后出错:

g52tjvyc

g52tjvyc1#

为了让JavaFx启动您的应用,它需要访问其主类,因此您需要导出主类所在的包。
将出口声明添加到module-info:

module Game.main {
    ...

    exports main;
}
lb3vh1jj

lb3vh1jj2#

如果您的类在(default package)下:

与具体问题无关。
尝试运行包(default package)内的类(例如HelloWorld.java)时,可能会遇到此错误。
要解决这个问题,请在src文件夹下创建一个新包 (至少在一般情况下)给予它一个名称,然后将您的类移到新包中并尝试再次运行它:
右键单击类(在指定的包下)-〉运行方式-〉Java应用程序。

jei2mxaa

jei2mxaa3#

如果将一个类移动到另一个文件夹中,则在类声明行之前,需要有一个对该类所在/应该所在的文件夹的引用-告诉系统在哪里查找。例如:

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

public class Main extends Application {

    @Override
    public void start(Stage primaryStage) throws Exception {
    }
}

相关问题