由应用程序启动方法中的java.lang.runtimeexception异常引起

由应用程序启动方法中的java.lang.runtimeexception异常引起,java,javafx,Java,Javafx,我使用javaFX时,始终不需要fxml文件。当我在IDE中运行我的应用程序时,它工作得非常好。只有当我创建jar文件时,它才不起作用。有什么帮助吗 error : no such file in res\img\menu_bg.png 此文件与整个代码位于同一文件夹中 代码 尝试以下操作:在与jar相同的文件夹中,放置另一个文件夹名res。在res文件夹中创建一个文件夹名img。在img文件夹中放入上面名称的实际图像。尝试以下操作:在与jar相同的文件夹中,放入另一个文件夹名res。在re

我使用javaFX时,始终不需要fxml文件。当我在IDE中运行我的应用程序时,它工作得非常好。只有当我创建jar文件时,它才不起作用。有什么帮助吗

error : no such file in res\img\menu_bg.png 
此文件与整个代码位于同一文件夹中

代码


尝试以下操作:在与jar相同的文件夹中,放置另一个文件夹名res。在res文件夹中创建一个文件夹名img。在img文件夹中放入上面名称的实际图像。

尝试以下操作:在与jar相同的文件夹中,放入另一个文件夹名res。在res文件夹中创建一个文件夹名img。在img文件夹中放入您的实际图像和上面的名称。

我假设您不需要写入图像文件

在这种情况下,图像最好包含在jar中。这可以防止路径出现问题。Java试图解析相对于工作目录(通常不是代码文件夹)的相对路径

通过将图像添加到jar文件本身,您可以使用
实例获取资源,例如

// InputStream isBG = getClass().getResourceAsStream("/res/img/menu_bg.png");
// Image imgBG = new Image(isBG);

Image imgBG = new Image(getClass().getResource("/res/img/menu_bg.png").toExternalForm());
它独立于工作目录工作


这假设文件存储为jar文件中的
/res/img/menu_bg.png
条目。

我假设您不需要写入图像文件

在这种情况下,图像最好包含在jar中。这可以防止路径出现问题。Java试图解析相对于工作目录(通常不是代码文件夹)的相对路径

通过将图像添加到jar文件本身,您可以使用
实例获取资源,例如

// InputStream isBG = getClass().getResourceAsStream("/res/img/menu_bg.png");
// Image imgBG = new Image(isBG);

Image imgBG = new Image(getClass().getResource("/res/img/menu_bg.png").toExternalForm());
它独立于工作目录工作


这假设文件存储为jar文件中的
/res/img/menu\u bg.png
条目。

A)堆栈跟踪是文本。所以,把它作为文本,而不是接近不可能阅读的老年人截图。B) 你确定你的JAR文件真的包含了你想要使用的资源吗?也许你没有包含你的res文件夹看看这里@ghostCat只要点击它弹出窗口,你就可以缩放它:)我包含了packgaes只需要包含资源就可以了?它不包括软件包中的automaticaly?这很公平,但仍然是:屏幕截图被视为这里的“最后手段”。对于那些只能用屏幕拍摄的东西。您的控制台输出是文本!文件是否与代码位于同一文件夹中并不重要。重要的是相对路径
res/img/menu_bg.png
是否可以从工作目录解析。此外,应该将一直使用的文件作为资源包括在内(假设您不必对其进行写入。)a)堆栈跟踪是文本。所以,把它作为文本,而不是接近不可能阅读的老年人截图。B) 你确定你的JAR文件真的包含了你想要使用的资源吗?也许你没有包含你的res文件夹看看这里@ghostCat只要点击它弹出窗口,你就可以缩放它:)我包含了packgaes只需要包含资源就可以了?它不包括软件包中的automaticaly?这很公平,但仍然是:屏幕截图被视为这里的“最后手段”。对于那些只能用屏幕拍摄的东西。您的控制台输出是文本!文件是否与代码位于同一文件夹中并不重要。重要的是相对路径
res/img/menu_bg.png
是否可以从工作目录解析。此外,应将一直使用的文件作为资源包括在内(假设您不必写入该文件)