Erro na construção do JAR Javafx

Toda vez que eu faço a construção do meu .jar ele me retorna um erro dizendo que não foi possível encontrar o arquivo fxml, porém, na IDE ele funciona normal, o que pode ser?

java.lang.reflect.InvocationTargetException
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:564)
	at javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:473)
	at javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:372)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:564)
	at java.base/sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:945)
Caused by: java.lang.RuntimeException: Exception in Application start method
	at javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:973)
	at javafx.graphics/com.sun.javafx.application.LauncherImpl.lambda$launchApplication$2(LauncherImpl.java:198)
	at java.base/java.lang.Thread.run(Thread.java:844)
Caused by: java.lang.NullPointerException: Location is required.
	at javafx.fxml/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3246)
	at javafx.fxml/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3210)
	at javafx.fxml/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3179)
	at javafx.fxml/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3152)
	at javafx.fxml/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3129)
	at javafx.fxml/javafx.fxml.FXMLLoader.load(FXMLLoader.java:3122)
	at sample.Login.start(Login.java:17)
	at javafx.graphics/com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$9(LauncherImpl.java:919)
	at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runAndWait$11(PlatformImpl.java:449)
	at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$9(PlatformImpl.java:418)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:417)
	at javafx.graphics/com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96)
	at javafx.graphics/com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
	at javafx.graphics/com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:175)
	... 1 more
Exception running application sample.Login

Classe principal:


import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;
import javafx.stage.StageStyle;
public class Login extends Application {
    private static Stage stage;

    @Override
    public void start(Stage stage) throws Exception{
        Parent root = FXMLLoader.load(getClass().getResource("./view/ViewLogin.fxml"));
        stage.initStyle(StageStyle.UNDECORATED);
        stage.setScene(new Scene(root));
        stage.setTitle("Login");
        stage.show();
        setStage(stage);
    }

    public static Stage getStage() {
        return stage;
    }

    public static void setStage(Stage stage) {
        Login.stage = stage;
    }

    public static void main(String[] args) {
        launch(args);
    }}

Controller Principal:


import com.jfoenix.controls.JFXButton;
import conexao.ConexaoMySql;
import dao.LoginDao;
import de.jensd.fx.glyphs.fontawesome.FontAwesomeIcon;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.Alert;
import javafx.scene.control.PasswordField;
import javafx.scene.control.TextField;
import javafx.scene.input.MouseEvent;
import javafx.stage.Stage;
import model.ModelLogin;
import sample.Login;
import sample.Principal;

import java.net.URL;
import java.sql.SQLException;
import java.util.ResourceBundle;
import java.util.logging.Level;
import java.util.logging.Logger;

public class ControllerLogin implements Initializable {

    ModelLogin modelLogin = new ModelLogin();
    LoginDao loginDao = new LoginDao();

    @FXML
    private JFXButton btnEntrar;
    @FXML
    private TextField txtAcesso;
    @FXML
    private PasswordField txtSenha;
    @FXML
    private FontAwesomeIcon close;
    @FXML
    private FontAwesomeIcon minimizar;


    @Override
    public void initialize(URL location, ResourceBundle resources) {
        //Método para clicar no botão e entrar no sistema
        btnEntrar.setOnMouseClicked((MouseEvent e) -> {
            /**
             * Instância das classes -> Conexão e a Janela principal
             */
            ConexaoMySql conn = new ConexaoMySql();
            Principal viewPrincipal = new Principal();
            try {
                //Verifica se o que o usuário digitou está contido no banco de dados
                conn.executeSql("SELECT * FROM tbl_usuarios where cod_acesso='" + txtAcesso.getText() + "'");
                conn.resultSet.first();
                //Se o que o usuário digitou tiver no banco, verifica se a senha que o usuário digitou é válida
                if (conn.resultSet.getString("senha").equals(txtSenha.getText())) {
                    /**
                     * Se a senha estiver válida, a janela atual é fechada
                     */
                    Login.getStage().close();
                    try {
                        /**
                         * Abre a janela principal mostrando um alerta dizendo que o login foi efetuado
                         */
                        viewPrincipal.start(new Stage());
                        Alert alert = new Alert(Alert.AlertType.INFORMATION);
                        alert.setTitle("Information");
                        alert.setHeaderText("Login Efetuado");
                        alert.setContentText("Seja bem-vindo, login efetuado com sucesso!");
                        alert.show();
                    } catch (Exception ex) {
                        Logger.getLogger(ControllerLogin.class.getName()).log(Level.SEVERE, null, ex);
                    }
                } else {
                    Alert alert = new Alert(Alert.AlertType.ERROR);
                    alert.setTitle("Error");
                    alert.setHeaderText("Usuário/Senha inválidos");
                    alert.setContentText("Usuário ou senha inválidos!");
                    alert.show();
                }
                //Se o usuário não estiver presente no banco de dados -> Mensagem de erro
            } catch (SQLException e1) {
                Alert alert = new Alert(Alert.AlertType.ERROR);
                alert.setTitle("Error");
                alert.setHeaderText("Usuário/Senha inválidos");
                alert.setContentText("Usuário ou senha inválidos!");
                alert.show();
            }
        });

        //Fecha a janela e encerra o sistema
        close.setOnMouseClicked((MouseEvent event) -> {
            System.exit(0);
        });

        //Minimiza a janela
        minimizar.setOnMouseClicked((MouseEvent e) -> {
            Login.getStage().setIconified(true);
        });
    }
}