16

我现在尝试了很多方法,包括来自 commons IO 的 FilenameUtils.normalize(),但我似乎无法在另一个文件夹中获取资源来获取 Java FXML 文件。

代码如下

  try {
     root = FXMLLoader.load(getClass().getResource("../plugin/PluginSelection.fxml"));
  } catch (IOException ex) {
     Logger.getLogger(QueueOperationsController.class.getName()).log(Level.SEVERE, null, ex);
  }

所需的 FXML 文件在哪里:

gui
   dialogues
      plugins
         PluginSelection.fxml // desired file
      dataset
         QueueOperationsController // current class

如何最好地获取所需文件的 URL?

谢谢!

4

2 回答 2

16

您可以获得相对于Class或上下文根的资源。在您的示例/中,如果那是您的应用程序中的包结构,则将其放在字符串的开头。尝试

getClass().getResource("/gui/dialogues/plugins/PluginSelection.fxml")
于 2013-01-17T23:19:06.477 回答
1

在我看来,如果我们仅在标记为资源文件夹中搜索时使用 .getResource 。否则,即使文件夹路径正确,但没有标记为资源文件夹,也会出错。所以,我这样做:

FileInputStream fileInputStream = new FileInputStream(new File("src/main/java/CRUD/bnkseekCRUD.fxml"));
    Parent root = loader.load(fileInputStream);
于 2017-11-25T00:50:32.837 回答