每次运行导出的.jar
文件(该文件包含一个以图像为图标的jframe
“为什么我的Jar不运行,除非我解压缩文件?”
这似乎是对您的资源使用file
的行为。举个例子
File file = new File("resources/image.png");
Image image = ImagIO.read(file);
和项目结构(注意,resources
实际上应该在src
中,这样它就会自动构建到jar中--除非您对它进行了不同的配置。但是为了这个论点,假设您在将resources
构建到jar中的地方对它进行了配置)
C:\
Project
resources\image.png
有些考试:
>
从IDE-Works运行!为什么?使用file
查找文件系统上的文件。使用相对路径,搜索将从“工作目录”开始,在IDE的情况下,该目录通常是项目根。因此“resources/image.png”
是相对于projectroot
的有效路径
构建jar,假设它在项目中以dist
dir结束。这就是它看起来的样子
ProjectRoot
dist
ProjectRoot.jar
URL url = Test.class.getResource("/resources/image.png");
System.out.println(url.toString());
C:\ProjectRoot
dist
resources/image.png // from extracted jar
ProjectRoot.jar
解释够了。
由于这个原因,当您想要读取嵌入式资源时,应该像Andrew Thompson提到的那样,从一个URL读取它们。这个url应该是相对于调用它的类或类加载器的。以下是几种不同的方法:
>
如图所示
URL url = getClass().getResource("/resources/image.png");
InputStream is = getClass().getResourceAsStream("/resources/image.png");
URL url = getClass().getClassLoader().getResource("resources/image.png");
这会奏效的
ProjectRoot
src\resources\image.png
URL url = getClass().getResource("/resources/image.png");
Image image = ImageIO.read(url);
我在intelliJ中创建了一个Java /JavaFX应用程序。我创建了它作为一个Java的应用程序,后来为JavaFX导入了必要的部件。 我尝试了Izpack、Javapackager、Jpackager、Jpackage和创建胖jar中的各种安装程序/打包程序创建者。我什么都不行。 该应用程序在IntelliJ中运行良好。 为什么它不会在别处运行? 这是我的POM、代码和错误消息。 如果你能
我为我的朋友创建了一个项目,我想问我如何使用PyInstaller解决我的问题? 我的问题是当我打字的时候 PyInstermyprogram.py 它确实创建了文件夹,但是我在其中的任何地方都找不到。它应该在dist,但它不是。
我完成了我的程序,现在我正在尝试创建一个jar文件来运行它,但是当我尝试这样做时,什么都没有发生,没有错误,没有执行,没有任何事情。这是路径:D:\Eclipse\Workspace\Game\Src\AppPackage我编译了我的类D:\Eclipse\Workspace\Game\Src\AppPackage javac Game.java创建了我的清单和jar文件:echo main-cl
问题内容: 因此,我一直在编写一个简单的3D GUI应用程序,旨在让用户只需双击JAR文件即可使用。在将其放入JAR文件之前,它可以正常工作,并且在命令提示符下运行时(在jar文件的目录中键入“ java -jar Modeler.jar”),可以在JAR文件中使其完美运行。但是,当我双击它时,什么也没有发生。它运行完美,没有命令提示符下的错误。我从经验中知道,没有显示启动时的崩溃报告,因为控制台