当我从JavaFXAplication类调用windowController类的loadFXMLItemsAgain()方法时,绝对路径是正确的,但是我在WindowControllerTest(JUnit)中执行相同的操作,这会导致绝对路径对基本模块... / deliverytool /产生错误。 ..切换到... / deliverytool / deliverytool / ...,这会导致错误。
我只希望绝对路径与JavaFXApplication中的绝对路径相同,并且我100%不知道这是从哪里来的。
我试图通过使用getClass.getRessource()来修复它,这甚至更重了:在两种情况下都停止工作。
这是Project Structure的链接。
//The method in WindowController:
public void loadFXMLItemsAgain() throws IOException {
FXMLLoader loader = new FXMLLoader(new File("deliverytool/Fxml/Window.fxml").toURI().toURL());
if (loader.getController() == null) {
loader.setController(this);
}
pane = loader.load();
}
//The way the method is called in JavaFXApplication
@Override
public void start(Stage primaryStage) throws Exception {
WindowController controller = new WindowController();
controller.setVerw(verw);
controller.setVerwk(verwk);
controller.loadFXMLItemsAgain();
primaryStage.setTitle("Deliverytool");
controller.init(primaryStage);
controller.show();
...
}
//The way the method is called in WindowControllerTest JUnit Test Class
public class WindowControllerTest {
WindowController controller = new WindowController();
@BeforeEach
public void init() throws IOException {
controller.loadFXMLItemsAgain();
}
...
}
java.io.FileNotFoundException:... / Inteliji IDEA / pizzagesch-ft / deliverytool / deliverytool / Fxml / Window.fxml(无此类文件或目录)
应该:
... / Inteliji IDEA / pizzagesch-ft / deliverytool / Fxml / Window.fxml
最佳答案
确保“ JavaFXApplication”和“ WindowControllerTest JUnit测试类”都位于同一文件夹中。
后者似乎已经在“ / deliverytool”文件夹中。