我知道之前曾多次询问过这个问题,但没有一个解决方案能解决我的问题(或者我只是不知道如何正确调整它们)。
我尝试编写一个应用程序,它应该打开一个位于应用程序jar文件内部的图像。
jar文件是由maven创建的,所以最初的图片是在我的maven项目的src / main / resources目录中,它最终会在我的jar文件的基目录中。
程序本身由两个java文件和一个fxml文件组成。一个java文件是我的主类(称为imageviewer.java),另一个java文件是我的javafx控制器(称为Contoller.java)。
应该打开图片的方法在Controller.java文件中。
我发现的解决方案都使用了getclass()。getResources ...,但在这种情况下它不起作用(可能因为它不是一个由单个类组成的jar文件)。最终maven生成的jar文件的名称为imageviewer-0.0.1-SNAPSHOT.jar。
如何访问其中的图像?
答案 0 :(得分:0)
好的,我确实找到了解决方案。
在Eclipse中,我只能在与java文档位于同一文件夹中时访问该图像。在我将它移动到“Resources”文件夹(它在maven项目中所属的位置)后,我无法通过相对路径访问它。
我所要做的就是在resources文件夹中创建一个新包,该包被称为与java文件所在的包完全相同。
所以我的项目结构现在看起来像这样:
的src /主/爪哇/ myPackageName / MyJavaFiles.java
和
的src /主/资源/ myPackageName / Imagename.jpg
之后我能够使用getClass()获取.getResourcesAsStream(“Imagename.jpg”);