2014-01-24 72 views
1

我有一個Java桌面程序,它使用「文件」文件夾來保存日誌和「圖像」文件夾以獲取其gui的圖像。 我想用可見的「.class」文件發佈這個程序(以便我可以更新它們)。在Eclipse中,當我使用導出 - > Jar或導出 - >可執行Jar選項。它將所有東西封裝在一個jar文件中,並且我的程序不起作用(可能是因爲它找不到圖像文件)。 我想我記得一種發佈代碼的方式,因爲它使用的是eclipse,但找不到它:/。我如何發佈我的代碼保存我想要的程序文件夾?Java,用本地文件夾發佈

2-)爲更新保留可見的「.class」文件是一個壞主意嗎? (我不這樣做,也希望人們在代碼中潛行,因爲它會有數據庫url等等)。我有什麼選擇? 你如何進行更新?

感謝您的答案和原諒我,如果我問的東西已經被提出和回答gazilion時間:/(。

+2

更新包含所有內容的單個jar文件比更新單個.class文件要容易得多。您應該將所有內容打包到一個jar文件中,並向我們展示您的項目佈局,生成的jar的內容以及相關代碼,以便我們可以向您解釋爲什麼加載圖像不起作用。 –

+0

由於jar文件只是一個zip文件,因此對'可見.class'文件的安全問題同樣適用。 –

回答

0

WOW,您的評論在我的腦海引發燈=)。 問題解決:)。

我所做的是, 導出可運行jar,以及選定的庫被複制到文件夾中。 然後,我將外部文件,即「文件」和「圖像」文件夾複製到我的jar文件所在的文件夾中。 它的工作! =)。

//對於第二個問題,就是這樣,「.jar」文件是最小的,所以它可以很容易地更新。

對於第二個問題,我將圖像顯示爲資源(可以在eclipse中右鍵單擊相關文件夾來完成)。

感謝您的評論。

+2

您最好還將圖像和文件存儲在jar中。 –

+0

但它會增加jar的大小?在更新的情況下,這不是一個問題嗎? 而且,我怎樣才能從我的代碼中解決它們? – Ozan

+1

那又如何?您是否擁有數千張高質量圖像,以至於取代整個罐子而不是單個圖像會導致問題?我的猜測是你有幾個圖標,這會增加幾個KB的jar大小。而且,就像.class文件一樣,更新單個jar文件比更新幾個單獨的圖像更容易。從jar文件中加載圖像(實際上通常從classpath中加載),請參閱http://stackoverflow.com/questions/16486858/packaging-a-program-containing-images和http://stackoverflow.com/questions/ 17085692 /負載圖像從-罐和 - 外 - 它功能於蝕 –

0

一旦你開始使用maven作爲你的構建環境,很多這些問題就會消失。 如果您想將您的java代碼部署到外部世界(堅持標準模式),打包和資源處理非常重要。

一個常見的模式來加載資源JAR文件中(我的理解,從你的Java代碼)是使用

MyClass.class.getRessourceAsStream("yourfile.whatever") 

或者使用FileIO專注。

關於maven以外有很多教程和資源,它可以幫助您不必在構建過程中手動複製任何東西。除編碼以外的其他內容都應該由您的環境自動完成