简体   繁体   中英

How do I use Java getResource() to get a resource from a parent directory?

I've tried numerous methods now, including FilenameUtils.normalize() from commons IO, but I can't seem to be able to get a resource in another folder to get a Java FXML file.

The code is the following

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

Where the desired FXML file is:

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

How do I best get the desired file's URL?

Thank you!

You can get resources relative to the Class or the context root. In your example putting / at the start of the string if thats your package structure in your application. Try

getClass().getResource("/gui/dialogues/plugins/PluginSelection.fxml")

It seems to me that if we use .getResource only when searching in marked as resource folder. Otherwise, even if folder path is correct, but it's not marked as resource folder we'll got an error. So, I do this way:

FileInputStream fileInputStream = new FileInputStream(new File("src/main/java/CRUD/bnkseekCRUD.fxml"));
    Parent root = loader.load(fileInputStream);

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM