2012-01-22 85 views
7

當我從eclipse將我的代碼作爲可運行JAR導出時,我已將它設置爲抓取的所有文件(如按鈕圖像和其他文件)都丟失,即使它們實際上位於JAR中。我在文件前添加了getClass().getResource,但是當我嘗試運行JAR時甚至沒有發生任何建議?可運行JAR缺少圖像/文件(資源)

+2

請向我們展示一些實際的代碼,以及顯示路徑的JAR文件的內容列表。 – ziesemer

回答

21

好像你沒有把你的東西放在正確的意義上。爲了使其工作,請按照下列步驟操作:

  1. 右鍵單擊您在ProjectProject Explorer Tree
  2. 前往New -> Source Folder,然後將Name提供給Source Folder
  3. 現在手動將您的東西添加到您創建的Source Folder,就像您想添加圖片,然後製作New Folder一樣,通過手動訪問此Source FolderFile System
  4. 將此名稱命名爲New Folderimages並將您的圖像複製到此Folder
  5. 現在回到您的Eclipse IDE和Refresh您的Project從項目瀏覽器,通過右鍵單擊您的項目,在這裏你可以看到你刷新後添加的內容。

現在爲了訪問,說任何圖像,你會使用。

getClass().getResource("/images/yourImageName.extension"); 

這將返回一個URL對象。請記住first forward slash,在這種情況下,因爲您的源文件夾中的任何內容都可以用簡單的術語在此幫助下訪問。現在當你運行你的項目時,這個源文件夾的內容將被自動添加到bin文件夾中,當你創建一個Runnable Jar的時候,你可以按原樣訪問源文件夾中的東西。

1

該路徑需要適合該資源。

對於「foo.gif」位於jar的根部,您必須使用「/foo.gif」來引用它。

如果程序在徹底清理並重建後正常工作,但作爲jar失敗,那麼很可能沒有包含在jar中的文件。

0

嘗試將文件夾放在jar中的方式與您在程序中獲取它們的方式相同。將相同的資源放在項目中的相同位置。該jar將以與編譯器相同的方式引用它們。

0

您需要使用像這樣的流獲取圖像 - this.class.getClassLoader()。getResourceAsStream(「test.jpg」)並確保圖像存在於您引用的jar中。

0

由於nIcE cOw表示,您只需要在您的Project Explorer樹中創建一個源文件夾。 該文件夾內的所有文件都將位於根項目文件夾中。

要引用它們,你必須寫你的名字的項目,因爲它削減的文件名:

getClass().getResource("ProjectName/image.extension");

我希望這有助於!