2009-07-21 63 views
2

我需要從Java桌面應用程序生成複雜的文本文件。將資源文件複製到文件夾?

如果我可以複製模板文件並將其定製爲任何需要構建的代碼,我已經決定代碼將相當容易實現。

我只會將一個罐子分配給客戶。如何處理這個問題是否有最佳做法?

  • 它甚至有可能在運行時從jar複製資源?
  • 在第一次執行jar時「自動生成」模板會更好嗎?
+0

我不明白你想從哪裏複製文件。你能說清楚一點嗎?模板文件在哪裏?它在罐子裏嗎?您希望客戶在啓動應用程序後在其計算機上安裝此文件嗎? – amorfis 2009-07-21 20:16:40

回答

8

您可以通過讀取存儲在你的JAR文件:

Class.getResourceAsStream(pathToFile); 

有關詳細信息,請參閱本question

5

是的,您可以從JAR讀取資源並將其寫入您的文件系統。正如kgiannakakis所建議的那樣,您需要將資源視爲流。

但是,使用哪個類加載器是模糊的。我經常看到建議,在Web應用程序,你應該使用的上下文ClassLoader:

Thread.currentThread().getContextClassLoader().getResourceAsStream() 

但隨後上快速搜索,以確認這仍然是正確的建議,很多人建議當前的類加載器代替上下文類加載器,雖然大多數人承認沒有答案,將在任何情況下完美工作。 Whee!

在這一點上,我會說只是使用當前的類加載器@kgiannakakis建議 - 它更簡單,並不清楚使用上下文類加載器會更好。如果遇到無法正常工作的情況,可以嘗試使用上下文類加載器作爲替代方法。

相關問題