尝试将应用程序更新到 Java 11,在对模块进行了一番排序后,我以为我已经摆脱了所有红色错误,现在我得到了这个我以前从未见过的错误:
环顾四周,我看到人们建议可以使用应用程序结构:
或 module-info.java 文件:
有人能看到我需要做什么才能摆脱这个吗?
编辑: 将 Main.java 移动到名为“main”的包并尝试运行它后出错:
为了让 JavaFx 启动您的应用程序,它需要访问其主类,因此您需要导出主类所在的包。
将导出声明添加到模块信息:
module Game.main {
...
exports main;
}
(default package)
下:与具体问题无关。
您可能会在尝试运行包中的类
HelloWorld.java
时遇到此错误(default package)
。
要解决此问题,请在
src
文件夹下创建一个新包(至少在一般情况下)并为其命名,然后将您的类移至新包中并尝试再次运行它:
右键单击该类(在指定包下)-> 运行方式 -> Java 应用程序。
在添加一些新类后尝试使用 javafx-maven-plugin 运行我的 javafx 应用程序时,我遇到了此异常。
执行
mvn clean
解决了问题。然后我成功执行了应用程序 mvn javafx:run
如果将类移动到不同的文件夹,在类声明行之前,您需要引用该类所在/应该位于的文件夹 - 告诉系统在哪里查找。例如:
//This line below is important
package main.java.main.Main;
public class Main extends Application {
@Override
public void start(Stage primaryStage) throws Exception {
}
}