У меня есть следующая проблема:Не удается загрузить ресурс, всегда возвращает нуль
Я занимаюсь разработкой приложения Java 8 с IntelliJ IDEA 15 с использованием JavaFX в качестве графического интерфейса и Gradle как системы автоматизации сборки (никогда не работал с Gradle до того, хотя). Я всегда получаю IllegalStateException
«Место не установлено» при загрузке файла fxml, причина в том, что getClass().getResource("gui.fxml")
всегда возвращает null
.
Мой Java Код:
package minerva.gui;
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;
public class Main extends Application {
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) throws Exception {
System.out.println(getClass().getResource("gui.fxml")==null); // DEBUG: always returns true, but why?
FXMLLoader loader = new FXMLLoader(getClass().getResource("gui.fxml"));
Parent root = (Parent) loader.load();
primaryStage.setTitle("Minerva");
primaryStage.setScene(new Scene(root));
Controller control = loader.getController();
primaryStage.show();
}
}
Может быть Gradle отвечает за это, я не знаю.
build.gradle:
group 'minerva.impl'
version '1.0-SNAPSHOT'
apply plugin: 'java'
sourceCompatibility = 1.5
repositories {
mavenCentral()
}
dependencies {
compile 'org.hsqldb:hsqldb:2.3.1'
testCompile group: 'junit', name: 'junit', version: '4.11'
}
settings.gradle:
rootProject.name = 'minerva'
Я также проверил образцы ресурсов в настройках IntelliJ, они должны быть действительными:? .java;!? .form;!? .class;!? .groovy;!? .scala;!? .flex;!? .kt;!? !?. .clj; * А.Я.
И здесь также образ моей структуры:
попробовать с слэш getResource («/ gui.fxml») – AdamSkywalker
@AdamSkywalker изменяя его getResource («/ gui.fxml») и перемещая его в папку ресурсов решает проблему, THx –