如何使用Java getResource()从父目录获取资源?

cal*_*ben 9 java path

我现在尝试了很多方法,包括来自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);
  }
Run Code Online (Sandbox Code Playgroud)

所需的FXML文件是:

gui
   dialogues
      plugins
         PluginSelection.fxml // desired file
      dataset
         QueueOperationsController // current class
Run Code Online (Sandbox Code Playgroud)

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

谢谢!

Ale*_*rds 12

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

getClass().getResource("/gui/dialogues/plugins/PluginSelection.fxml")
Run Code Online (Sandbox Code Playgroud)

  • 如果我的资源是高于类(`../../../../ resource`)的四个目录,我会输入`//// resource`吗? (3认同)