簡體   English   中英

Java:以JAR格式運行時的文件路徑

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM