enter image description here package LinLab_System;

import javafx.application.Application; import javafx.fxml.FXMLLoader; import javafx.scene.Scene; import javafx.scene.image.Image; import javafx.stage.Stage; import java.net.URL; public class Main extends Application { private static Scene initialWindow; static Scene settings; public static Stage prStage; @Override public void start(Stage primaryStage) throws Exception{ prStage=primaryStage; URL ur = getClass().getResource("Initial_window.fxml"); initialWindow=new Scene(FXMLLoader.load(ur), 900, 600); settings=new Scene(FXMLLoader.load(getClass().getResource("settings/settings.fxml")), 280, 270); primaryStage.setTitle("LinLab System (LLS)"); primaryStage.setScene(initialWindow); primaryStage.getIcons().add(new Image("file:src/LinLab_System/images/Logo.jpg")); primaryStage.setResizable(false); primaryStage.show(); } public static void main(String[] args) { launch(args); } } 

Created an artifact from this project and tried to launch the resulting jarnik. In IntellijIdea 16 everything works, but when I try to launch .jar it gives an error.

This is a bug report.

  Executing C:\Users\Dmitrij\Documents\NetBeansProjects\JavaFXProject1\dist\run246249056\JavaFXProject1.jar using platform C:\Program Files\Java\jdk1.8.0_121\jre/bin/java Exception in Application start method java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:389) at com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:328) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:767) Caused by: java.lang.RuntimeException: Exception in Application start method at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:917) at com.sun.javafx.application.LauncherImpl.lambda$launchApplication$155(LauncherImpl.java:182) at java.lang.Thread.run(Thread.java:745) Caused by: javafx.fxml.LoadException: file:/C:/Users/Dmitrij/Documents/NetBeansProjects/JavaFXProject1/dist/run246249056/JavaFXProject1.jar!/LinLab_System/Initial_window.fxml at javafx.fxml.FXMLLoader.constructLoadException(FXMLLoader.java:2601) at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2579) at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2441) at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3214) at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3175) at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3148) at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3124) at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3104) at javafx.fxml.FXMLLoader.load(FXMLLoader.java:3097) at LinLab_System.Main.start(Main.java:20) at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$162(LauncherImpl.java:863) at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$175(PlatformImpl.java:326) at com.sun.javafx.application.PlatformImpl.lambda$null$173(PlatformImpl.java:295) at java.security.AccessController.doPrivileged(Native Method) at com.sun.javafx.application.PlatformImpl.lambda$runLater$174(PlatformImpl.java:294) at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95) at com.sun.glass.ui.win.WinApplication._runLoop(Native Method) at com.sun.glass.ui.win.WinApplication.lambda$null$148(WinApplication.java:191) ... 1 more Caused by: java.lang.IllegalArgumentException: URI is not hierarchical at java.io.File.<init>(File.java:418) at LinLab_System.Initial_Window_Controller.initialize(Initial_Window_Controller.java:46) at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2548) ... 17 more 
  • 3
    Welcome to SO in Russian. Be kind to translate your question into Russian, or ask it in the English part of the site. It is also highly desirable to describe the problem in more detail, attach the error logs and indicate the line of its occurrence. To supplement the question, you should edit the question. Answers are for answers only - YuriySPb
  • one
    @Yuriy SPb, what if he doesn’t know Russian, how will he read your message? - tCode
  • sorry, the habit of writing in english)) now I'll fix it) - Dmitry Lin
  • @tCode, translate by a google translator for example) Well, as it turned out in this case, the vehicle can be Russian - YuriySPb
  • How exactly is the link to the file in the project? - Dmitry Lin

1 answer 1

Use the getResourceAsStream() method. The fact is that when a resource is packaged in a jar, the OS does not perceive it as a separately existing file inside the folder. For the OS, there is only a jar file.