2011-09-22 34 views
2

我的代碼需要一個PNG文件。我應該把它放在哪裏? 我看到有人把它們放在.java中,然後使用getClassLoader()。getResourceAsStream。Java - 在哪裏存儲額外的資源文件

個人而言,我認爲將資源文件與源代碼混合並不乾淨。 這是一個好方法嗎?

回答

6

這是一個非常普遍和被接受的做法。它的優點是PNG文件將與代碼捆綁在JAR文件中。所以你不必擔心文件系統問題和安裝過程。如果你的代碼在那裏,資源也一樣。

對於同一個項目,您可以有多個源文件夾,一個用於Java,一個用於資源。如果您使用的是Maven,建議使用這種結構。但是,將PNG(和屬性和XML)文件混合到源代碼樹中也不是問題(尤其是因爲如果不使用Maven,分離會使構建過程複雜化)。

您應該獨立於源代碼(和編譯結果)的唯一東西是用戶可編輯的數據,例如配置文件。如果您希望用戶能夠替換圖像,這可能適用於此處。如果它是固定的(或提供了默認值),請將其與您的程序捆綁在一起,以減少可移動(=易碎)部件的數量。

+0

聽起來不錯。我去做。 – thinkanotherone

+0

_你可以有多個源文件夾爲同一個project_,最長的時間,我試圖把資源文件放在一個單獨的文件夾中。你解決了它。 +1 – Mordechai