在Maven项目中运行main类时,我得到:
应用程序启动方法中的异常
据我所知,这是因为FXML文件无法加载。
这是文件系统层次结构
src
└- main
├- java
| └- zenit
| └- ui
| └- TestUI.java
└- resources
└- zenit
└- ui
└- Main.fxml
在Eclipse(src内部)
阅读apache的maven指南和其他statck问题,下面的代码片段似乎是创建FXMLLoader
并指向Main.fxml
文件的正确方法。
public class TestUI extends Application {
public void start(Stage stage) throws IOException {
FXMLLoader loader = new FXMLLoader(getClass().getResource("Main.fxml"));
.
. // set controller, load parent, set scene etc.
.
}
public static void main(String[] args) {
launch(args);
}
}
但是这段代码将抛出前面声明的异常。
当我试图找出代码中异常的来源时,我发现它来自
fxmloader
。因此,我在上面的fxmloader=newfxmloader(..)行上运行了不同的sysout(一次一个)
:
System.out.println(getClass().getResource("Main.fxml"));
System.out.println(getClass().getResource("main/resources/zenit/ui/Main.fxml"));
System.out.println(getClass().getResource("../../../resources/zenit/ui/Main.fxml"));
对于所有人来说,控制台输出是:(显然不是预期的输出)
无效的
所以,我的问题是,
我的系统:
Maven:ApacheMaven3.6。0
>
我认为你的主要问题是图书馆“ikonli”如果尝试使用scenebuilder打开fxml,您将看到异常。我的建议是你失去那种依赖。使用更简单的工具,例如svg图形:
>
在fxml按钮中
下一步添加另一个css属性-fx-scage-form
以上不需要任何第三方库,您可以在网上免费找到所有图标。
公共主控制器(){
try {
FXMLLoader loader = new FXMLLoader(getClass().getResource("Main.fxml"));
loader.setController(this);
loader.setRoot(this);
loader.load();
} catch (IOException e) {
e.printStackTrace();
}
}
控制器应扩展根容器,如下所示:
公共类MainController扩展了VBox{
然后在主类中把主控制器传到现场
Scene scene = new Scene(controller);
我相信你的maven项目没有正确设置。你应该右键点击你的项目
最后一件事-您需要添加另一个类称为启动器-然后从它开始您的应用程序-不要从您的主类中删除main方法
包装zenit。用户界面;
公共类启动器{
public static void main(String[] args) {
TestUI.main(args);
}
}
希望这有帮助!
这是我的第一个问题,所以如果我搞错了,请原谅我,但是我有一个关于FXMLLoader的奇怪问题,我无法解释自己,所以任何提示或帮助都将非常感谢。 下面的片段是我如何将文件GraphicSettings.fxml加载到程序中的。 此代码段的输出如下: 按照我的理解,文件是在正确的位置找到的,并且它提供给FXMLLoader的URL也是正确的,但是由于某种原因,FXMLLoader找不到文件。 现在,
我有一个标准的(非JavaFX)MavenJava项目。它应该做的第一件事是加载一个. fxml文件,但是我似乎无法使用找到它。 这是不寻常的,因为此项目是从标准Java项目导入的,该项目运行良好,没有错误。 以下是主要方法: URL总是返回为。 我有作为测试方法,看看URL对象是否返回为null。根据我所读到的关于的所有内容,它应该得到与调用类相同的包中的任何对象,这是。 以下是
为了学习JavaFX,我使用IntelliJ IDEA创建了我的第一个项目,并将该项目导出为Eclipse项目。当我在这两个IDE中运行项目时,一切都运行得很好。不幸的是,在构建项目并尝试运行.jar或.exe文件之后,我得到了一个异常,我认为问题出在FXMLLoader中,它无法找到fxml文件。 项目层次结构
我正在使用GlassFish运行最新版本的NetBeans(7.3),并且创建了一个maven web项目,该项目添加了必要的JSF2.1依赖项。我能够部署项目并访问主页。问题是,当我尝试使用“JSF pages from Entities”向导时,我得到以下错误“找不到web文件夹”。如果我试图通过“project/properties/framework”添加JSF2.1框架支持,我会得到同样
我第一次尝试使用JavaFx与Maven。通过这个主题:链接IntelliJ不能识别JavaFX 11与OpenJDK 11,我配置的项目。但是无论我做什么,我都不能加载fxml文件,因为"getClass(). getResources(path)"返回null。 我更改了路径,以“/”开头,没有,更改了包,创建了包,删除了包,更改了模块信息中的引用,但这不起作用。 结构:https://ibb