2012-12-18 91 views
3

這可能只是IDE的細節。但是在Eclipse中,我有興趣組織更多的類和資源 - 所以。Eclipse - 引用Java資源

據我所知,默認的「src」目錄是扔我所有資源的地方。 如果我的資源駐留在那裏,我可以這樣引用它們:

ImageIcon icon = new ImageIcon("src/icon-16x16.png"); 

如果我創建只是圖標目錄(src /目錄內),那麼我只需更改路徑,例如:

ImageIcon icon = new ImageIcon("src/icons/icon-16x16.png"); 

所以,現在我想爲我的資源在src /目錄之外做一個單獨的目錄。

這裏是我的老結構:

prj.HelloWorld (project) 
-> src/ ......... 
-> src/images/ ........ 
-> src/ (default package) ......classes.java 

這裏就是我清理:

prj.HelloWorld (project) 
-> classes/ ......... 
-> images/ ........ 
-> media/........ 

現在,我感興趣的是使用專門的項目(prj.Resources)只是爲了我可以分享所有項目的共同資源。

prj.Resources (project) 
-> global_classes/ ......... 
-> global_images/ ........ 
-> global_media/........ 

prj.HelloWorld (project) 
-> classes/ ......... 
-> images/ ........ 
-> media/........ 

,然後通過添加prj.Resources到項目選項卡中的Java內部構建路徑修改prj.HelloWorld

(prj.HelloWorld>屬性> Java構建路徑>項目選項卡>添加...)

我已經做了,到目前爲止,和prj.Resources/global_classes內的任何類/是成功被檢測到。

但global_images內的圖像不是。

ImageIcon icon0 = new ImageIcon("global_images/icon.png"); 

我知道我們可以使用位於不同的項目資源,但我缺少明顯的東西在這裏。

回答

1

無法訪問global_images文件夾,因爲它不在HelloWorld Project的根文件夾中。

但是,您可以給出顯示該項目資源文件夾的相對路徑。

 ImageIcon icon0 = new ImageIcon("../Resources/global_images/icon.png"); 

Path Information

+0

這是否意味着當我將Resources項目添加到任何其他項目時,只有類(.java)文件可以被自動引用?我很好,只是想知道我的限制與Java構建路徑。 – coffeemonitor

+0

.java文件可以通過導入它們來引用。它是一個Java功能。相反,任何其他文件如html或圖像文件都需要正確引用。 '..'顯示你當前的目錄。在eclipse中你的工作區。 [按照此鏈接查看路徑信息。](http://www.uvsc.edu/disted/decourses/dgm/2120/IN/steinja/lessons/06/06_04.html) – Smit

1

您可以使用maven構建基礎設施。有一個很好的eclipse集成。

Maven正在大量使用。 Maven使用目錄樹等最佳實踐/慣例。

它執行庫依賴性管理並提供許多構建工具。

  • 的src /主/ JAVA - Java源代碼
  • 的src /主/資源 - 例如圖像資源
  • 的src /主/ web應用 - Web應用程序根目錄
  • 的src /測試/ JAVA - junit的測試
  • 的src /測試/資源 - 測試資源
  • 目標 - 建立目錄

釷ere是多模塊項目,父項目等功能,繼承父項的依賴項版本管理。

0

瞭解如何從URL構建ImageIcon以及如何將find a URL與其編譯的.class文件的位置相關。任何不是.java文件的東西都會被Eclipse自動複製到輸出文件夾,所以你的圖片也會到達那裏。這樣做可以讓您的程序繼續工作,無論您是否將其打包到.jar文件中,以及它們是否處於不同的項目中,只要Java Build Path正確地聲明它們的關係(它用於確定運行時類路徑,它由Class#getResource()搜索)。