Gremash Gremash - 8 months ago 50
Java Question

JavaFX "Location is required." even though it is in the same package

I am trying to get my JavaFX program to run but am having some difficulty. I keep getting an error of 'java.lang.NullPointerException: Location is required.' The fxml file is in the same package as Application class. Here is my very simple code:

package com.kromalights.designer.entry;

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 void start(Stage primaryStage) throws Exception{
Parent root = FXMLLoader.load(getClass().getResource("main.fxml"));
primaryStage.setTitle("Kromalights Designer");
primaryStage.setScene(new Scene(root, 300, 275));;

public static void main(String[] args) {

And here is a copy of my main.fxml file:

<?xml version="1.0" encoding="UTF-8"?>

<?import java.lang.*?>
<?import javafx.scene.layout.*?>
<?import javafx.scene.layout.BorderPane?>
<?scenebuilder-stylesheet mailStyles.css?>

<BorderPane prefHeight="300.0" prefWidth="300.0" xmlns:fx=""
<Pane prefHeight="200.0" prefWidth="200.0"/>
<Pane prefHeight="200.0" prefWidth="200.0"/>
<VBox prefHeight="200.0" prefWidth="100.0"/>
<HBox prefHeight="100.0" prefWidth="200.0"/>
<URL value="@mainStyles.css" />

The controller class does exist and is in the package specified in the fxml file. All of my names are correct and are where I think they should be. What am I missing? I did try renaming my fxml file in case it was a name issue. Please help. FYI, I am using Intellij IDEA on OSX.

UPDATE: This is a Maven issue. I setup Maven for this project and that caused the issue. I removed Maven temporarily so I can continue working without it. Does anyone have any insight as to how I would best handle this when using Maven?

Answer Source

Moving the file to the main/resources directory worked.