我有一个标准的(非JavaFX)MavenJava项目。它应该做的第一件事是加载一个. fxml文件,但是我似乎无法使用getClass(). getResources()
找到它。
这是不寻常的,因为此项目是从标准Java项目导入的,该项目运行良好,没有错误。
以下是主要方法:
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage stage) throws Exception {
Main_PanelController controller = new Main_PanelController(this);
FXMLLoader loader = new FXMLLoader(getClass().getResource("Main_Panel.fxml"));
loader.setController(controller);
URL url = getClass().getResource("Main_Panel.fxml");
System.out.println("URL: " + url);
System.exit(0);
Parent root = loader.load();
Scene scene = new Scene(root);
stage.setScene(scene);
stage.getIcons().add(new Image(new FileInputStream(Paths.get("Pictures", "SBU Emblem.png").toFile())));
stage.setAlwaysOnTop(true);
stage.setTitle("Simple Knisley Citation Tool α 0.5");
stage.setResizable(false);
stage.show();
}
URL总是返回为null
。
我有System.out.println
作为测试方法,看看URL对象是否返回为null。根据我所读到的关于getClass(). getResources()
的所有内容,它应该得到与调用类相同的包中的任何对象,这Main_Panel.fxml
是。
以下是Clean之后
target
文件夹中的Jar文件结构
META-INF/
META-INF/MANIFEST.MF
com/
com/protonmail/
com/protonmail/sarahszabo/
com/protonmail/sarahszabo/simpleknisley/
com/protonmail/sarahszabo/simpleknisley/core/
com/protonmail/sarahszabo/simpleknisley/core/CitationDiskManager.class
com/protonmail/sarahszabo/simpleknisley/core/Main_PanelController.class
com/protonmail/sarahszabo/simpleknisley/core/CitationGenerator$GeneratorType.class
com/protonmail/sarahszabo/simpleknisley/core/CitationGenerator.class
com/protonmail/sarahszabo/simpleknisley/core/Main.class
.netbeans_automatic_build
META-INF/maven/
META-INF/maven/com.protonmail.sarahszabo.simpleknisley/
META-INF/maven/com.protonmail.sarahszabo.simpleknisley/Simple-Knisley/
META-INF/maven/com.protonmail.sarahszabo.simpleknisley/Simple-Knisley/pom.xml
META-INF/maven/com.protonmail.sarahszabo.simpleknisley/Simple-Knisley/pom.properties
我在Kubuntu 18.04仿生海狸的Netbeans 8.2上使用Java 8171
这里有一些问题。
>
Maven期望(默认情况下)资源位于src/main/resources
目录中。默认情况下,它只从src/main/java
复制java文件。因此,将您的fxml
文件移动到src/main/resources/com/protonmail/sarahszabo/simpleknisley/core/main_面板。fxml
getClass(). getResources()
期望您提供要加载的资源的完整路径。所以在你的情况下:getClass(). getResources("/com/质子邮件/sarahszabo/simpleknisley/core/Main_Panel.fxml")
使用getClass()。getClassLoader()。getResource()
允许您将要加载的资源的位置指定为要调用它的类的相对路径:
getClass().getClassLoader().getResource("Main_Panel.fxml")
在Maven项目中运行main类时,我得到: 应用程序启动方法中的异常 据我所知,这是因为FXML文件无法加载。 这是文件系统层次结构 在Eclipse(src内部) 阅读apache的maven指南和其他statck问题,下面的代码片段似乎是创建并指向文件的正确方法。 但是这段代码将抛出前面声明的异常。 当我试图找出代码中异常
为了学习JavaFX,我使用IntelliJ IDEA创建了我的第一个项目,并将该项目导出为Eclipse项目。当我在这两个IDE中运行项目时,一切都运行得很好。不幸的是,在构建项目并尝试运行.jar或.exe文件之后,我得到了一个异常,我认为问题出在FXMLLoader中,它无法找到fxml文件。 项目层次结构
我正在使用JFrog artifactory 3.2.1.1和Maven 3.2.1。 我上传了一个已构建的项目,该项目存在于存储库浏览器下的libs-snapshot-local中。如果我浏览到com.foo.project,我会在artifactory浏览器中看到project-1.0-20151113.133436-1.jar文件以及pom和元数据。 我只是得到: 无法执行目标org.apa
我试图建立一个具有以下依赖关系的应用程序。 这是我在红帽网站上找到的一个例子-http://www.jboss.org/quickstarts/eap/helloworld-jms/ 我正在使用Netbeans 8.0.2。(还在dos和eclipse中使用Maven命令进行了尝试)我在构建时遇到了一个错误,下面是相同的日志: 我可以在以下路径找到文件: https://maven.reposit
项目/ SRC/ 主/ Java/ 资源/ baselayout.fxml 不是应该有用吗?我本来工作得很好,但突然就不是了。我不知道还能做什么。
我想知道是否有一个选项可以从表视图将添加到中。 我的程序经常更新 ,因此我想从中删除所有项,并将字符串变量名称添加到中。 我用JavaFX Scene Builder设置了我的程序。我的表有固定的id: cardsTable,我的Colum有id cardsColton。 有什么建议吗?