Я пытался найти решение этой проблемы, но все, что я пробовал, просто не удалось.
Я использую 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, но когда я запускаю его из банки, он не работает.
Структура:
Как я могу это исправить, пожалуйста?
jar -tf yourJar.jar
должно быть перечислено все, что содержится в банке (ваша среда IDE также может позволять просматривать банку, по крайней мере, NetBeans предоставляет эту функцию). - person fabian   schedule 29.08.2018