我有一个Java / JavaFX项目,我使用样式表。
来自样式表的图片将按如下方式加载:
#pane {
-fx-background-image:url('../packagename/image.jpg');
}
当我从Eclipse或Scenebuilder编译并运行它时,它加载正常。但是,从cmd(java -jar project.jar
)运行我的jar文件时,它会将文件名添加到路径中,并将其更改为:
project.jar/packagename/image.jpg
并且显然未能加载它。我如何获得正确的路径,或者从某种方式jar生成的路径中省略jar? jar文件位于包文件夹中,此处标有packagename
。
答案 0 :(得分:0)
将所有图像添加到源文件夹。既然你说你正在使用Eclipse,只需右键单击你的项目 - >新的源文件夹。将其命名为res
。将所有图片复制并粘贴到那里。
答案 1 :(得分:0)
假设" packageName"是一个来自jar文件根目录的路径,它显然会失败。路径上的../
前缀将导致您的相对位置将升至其父目录,并在该目录的../
之后搜索该部分。
在eclipse中,父目录可能是项目目录,而在.jar文件中,jar文件本身会给出您描述的结果。修复将是使用源目录(在" buildpath"在eclipse中配置)。这些源路径的结构取决于您,但常见的结构如下:
Root (either the eclipse project folder, or the .jar file
| src
| | main
| | java // usually here goes all the code
| | resources // and here goes all the resources the code needs.
同样,以上并不要求使java项目完美,尽管这是常见的做法。
可取的另一个修复方法是根本不使用../
,但我不确定。它可能只是一个.jar文件修复。