javafx找到正确的路径

标签 java path javafx

我得到以下结构:

project
|---+build
|---+dist
|---+nbproject
|----src
|-------client
|----------stuff
|-------------controller
|----------------DefaultController.java
|-------------files
|-------------fxml
|----------------DefaultFXML.fxml
|-------------img
|-------------lib
|---------------ContentManager.java
|-------------root
|---------------StartClass.Java
|---+build.xml
|---manifest.mf

我在 ContentManager 中设置 fxml 文件,例如:

public static final String 
        DEFAULT_SCREEN_FXML = "../fxml/Default.fxml";

但我总是遇到 nullPointerException。我不想使用绝对路径。那么如何找出相对路径呢? 设置 fxml 文件的 Controller 是否正确:

fx:id="client.stuff.controller.DefaultController"

??

最佳答案

部署应用程序时,通常会创建一个包含类文件和所有资源的 jar 文件。您需要从 jar 文件内部加载 fxml 文件,即作为资源。在这种情况下,路径元素“..”实际上没有任何意义。

使用

public static final String 
        DEFAULT_SCREEN_FXML = "/client/stuff/fxml/Default.fxml";

(路径相对于类路径)。

当然还要加载它

FXMLLoader loader = new FXMLLoader(getClass().getResource(DEFAULT_SCREEN_FXML));

或类似的东西。

关于javafx找到正确的路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23188511/

相关文章:

java - 获取图像中文本的像素位置

java - 非常奇怪的 Android 应用程序更新错误

R 命令 dir.create 和 file.path

matlab - 目录,路径,当前文件夹之间的区别?

java - 修剪文件名以用作字符串的正确方法?

java - WebLogic ClientInstanceInitationHandler 到 cxf ClientProxy

java - Selenium C# Java - WebDriver 和 IWebDriver 有什么区别?

android在不拍照的情况下获取照片路径

java - 尝试使用 AnchorPane 的扩展版本时出现实例化和加载异常

JavaFx:显示日期选择器