Java getResource() работает в среде IDE, но возвращает значение null в исполняемой банке

Я пытался найти решение этой проблемы, но все, что я пробовал, просто не удалось.

Я использую IntelliJ и пытаюсь получить ресурс из папки ресурсов (которая помечена как папка ресурсов и находится на пути к папке src).

Я создал простой пример, который создает ту же проблему. Допустим, я хочу установить для текста метки полный путь к файлу python в папке ресурсов:

package sample;

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
import java.io.IOException;
import java.net.URISyntaxException;

public class Main3 extends Application {

    Stage window;
    Label lbl = new Label();

    @Override
    public void start(Stage primaryStage) throws Exception {
        window = primaryStage;
        window.setTitle("Title");

        VBox vbox = new VBox();

        Button loginBtn = new Button("Log In");
        loginBtn.setOnAction(e->{
            try {
                printScriptFile();
            } catch (Exception ex) {
                ex.printStackTrace();
            }
        });
        vbox.getChildren().addAll(loginBtn, lbl);


        Scene scene = new Scene(vbox, 300,200);
        window.setScene(scene);
        window.show();
    }

    public void printScriptFile() throws IOException {
        String path = null;
        try {
            path = getClass().getClassLoader().getResource("SuspendProcess.py").toURI().getPath();
        } catch (URISyntaxException e) {
            e.printStackTrace();
        }
        lbl.setText(path);

    }


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

}

Этот код отлично работает в среде IDE, но когда я запускаю его из банки, он не работает.

Структура:

структура проекта

Как я могу это исправить, пожалуйста?


person Ori Netanel Ben-Zaken    schedule 29.08.2018    source источник
comment
stackoverflow.com/ вопросы/39167762/   -  person    schedule 29.08.2018
comment
Мне нужно получить путь к файлу, но в этом решении говорится о чтении ресурса как потока. Насколько я знаю, это не поможет мне с проблемой пути, верно?   -  person Ori Netanel Ben-Zaken    schedule 29.08.2018
comment
Вы должны включить этот файл python в свою банку. Как вы строите свою банку?   -  person m4gic    schedule 29.08.2018
comment
Вы проверили, включен ли ресурс в банку? jar -tf yourJar.jar должно быть перечислено все, что содержится в банке (ваша среда IDE также может позволять просматривать банку, по крайней мере, NetBeans предоставляет эту функцию).   -  person fabian    schedule 29.08.2018
comment
Да, файл в банке. Я создаю банку с IntelliJ   -  person Ori Netanel Ben-Zaken    schedule 29.08.2018
comment
@OriNetanelBen-Zaken - это желаемый путь относительно основной исходной папки или полный абсолютный путь в файловой системе?   -  person Aboca    schedule 29.08.2018
comment
Я считаю, что относительного было бы достаточно, но я хотел бы знать, как получить и абсолютный   -  person Ori Netanel Ben-Zaken    schedule 29.08.2018