2011-02-02 75 views
2

我創建了一個帶有可運行編譯類和一些模板文件(文本)的jar文件。我現在想使用打包到jar中的文本文件作爲File對象在應用程序中分發。訪問打包成jar文件的文件

我試圖只使用沒有工作的相對路徑。 如何獲取指向該jar文本文件的File對象?

有沒有辦法做到這一點,這樣既可以在運行未打包的類文件時,也可以從具有相同代碼的jar中運行,或者我需要使用單獨的函數嗎?

回答

5

從裏面的罐子你可以使用它像Class.getResourceAsStream(String),或類似的東西。

從出方它不是文件的罐子所以你必須將其解壓,以實際內部文件

+0

這就是文件。 Theres沒有辦法讓File對象指向一個目錄,所以可以得到子文件,對嗎? – Kissaki 2011-02-02 11:20:04

1

如果你正在使用你的應用程序中使用JAR,然後Class.getResourceAsStream(String)會做。

或者,如果您使用的是Servlet,那麼ServletContext.getResourceAsStream(String)也可以。

這2種方法會返回(您的資源數據的)InputStream,而不是您想要的File對象。