[英]Java: file path when running from as JAR
我有一個使用樣式表的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
的package文件夾中。
將所有圖像添加到源文件夾。 因為您說過您正在使用Eclipse,所以只需右鍵單擊您的項目-> New Source Folder。 將其命名為res
。 將所有圖像復制並粘貼到此處。
假設“ packageName”是從jar文件根目錄開始的路徑,則顯然會失敗。 路徑上的../
前綴將導致您的相對位置上升到其父目錄,並從該目錄中搜索../
之后的部分。
在eclipse中,父目錄可能是項目目錄,而在您的.jar文件中,它是jar文件本身,提供您描述的結果。 解決方法是使用源目錄(在Eclipse的“ buildpath”中配置)。 這些源路徑的結構取決於您,盡管常見的結構如下:
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文件的修復程序。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.