我有一个Maven项目,我试图使用javafx(我使用Eclipse)我想改变我的文件的路径。我有过
Parent root = FXMLLoader.load(getClass().getResource("/application/Main.fxml"));
这在下一个文件夹结构中运行良好
src
main
java
com
projectFolder
main.java
application
Main.fxml
但是我想要像
src
main
java
com
projectFolder
main.java
application
Main.fxml
我尝试了Parent root=fxmloader。加载(getClass()。getResource(“/com/application/Main.fxml”)
但不起作用。
我得到下一个错误
[JavaFX Application Thread] ERROR com.application.Main - javafx.fxml.LoadException:
/C:/Users/user/workspace/git/project/target/classes/com/application/Main.fxml:15
有人知道它怎么了吗?
假设你和我确实有相同的项目结构,如下图所示:
为了加载FXML文件,您应该使用一个完整的路径,如下面的示例:
package main.java.com.projectFolder;
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;
public class Main extends Application {
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) throws Exception {
FXMLLoader loader = new FXMLLoader(this.getClass().getResource("/main/java/com/application/Main.fxml"));
Parent root = loader.load();
primaryStage.setScene(new Scene(root));
primaryStage.show();
}
}
现在,如果您实际使用相对路径,例如:
FXMLLoader loader = new FXMLLoader(this.getClass().getResource("../application/Main.fxml"));
只要您在Eclipse运行时环境中编译和运行代码,上述方法也可以使用。当您将项目导出到JAR文件并尝试执行它时,您将得到与开始时相同的错误。实际上,您可以在类似的文章中阅读到这一点:它在Eclipse中运行正常,但不能作为运行。jar文件
编辑:对于maven项目,您应该考虑将FXML文件重新定位到src/main/Resources/文件夹。你可以在这篇文章中找到一个:JavaFX和maven: NullPointerExcture:位置是必需的
我不建议混淆文件结构。。。
但是在这种情况下,我相信您需要使用资源的相对路径:.../Application/Main.fxml
getClass()。getResource()
要求资源与调用类位于同一目录中。它不是,所以您需要Java用备份一个目录
我在文本编辑器中有一个另存为...功能。我想做一个另存为,保存到一个新文件,但是我要保存的永久文件现在应该总是这个新文件。所以当我点击我的另一个按钮,保存,而不是保存到以前的位置,将继续保存到用JFileChooser选择的位置。 我有一个名为currentFile的文件对象,它应该链接到通过“另存为”选择的文件。我目前正在通过在我的按钮操作执行功能中创建一个名为fileName的文件,然后将cu
问题内容: 我正在尝试编写一个node.js脚本,该脚本监视文件目录中的更改,然后打印更改的文件。如何修改此脚本,以便它监视目录(而不是单个文件),并在更改文件时显示目录中的文件名? 问题答案: 试试Chokidar: Chokidar仅使用fs即可查看文件,从而解决了一些跨平台问题。
问题说明了一切。我有一个文件对象,它指向。 如果我打电话给档案。getAbsolutePath()则返回 我的问题是- 我们可以将文件对象内的路径更改到不同的位置吗? 如果是,那怎么做? 谢谢
问题内容: 我想动态更改log4j日志文件的路径和文件名。 我已经阅读了很多页面,几乎每个页面都告诉我应该使用此处的系统属性: [如何动态更改log4j日志文件?](http://codingdict.com/questions/141150 所以我的log4j.properties文件看起来像这样: 在我的主要方法中,我将设置新的系统属性: 但是我只是得到一个错误: 当我尝试使用以下命令读取设置
我有一个应用程序必须有可折叠的面板,所以在Java FX中的TitledPane和Accordion设置是一个自然的候选者。 在应用程序中,当容器折叠时,我需要有容器的自定义头。我在TitledPane的css文档中看到,头实际上是一个HBox和各种其他组件。 http://docs.oracle.com/javafx/2/api/javafx/scene/doc-files/cssref.htm