簡體   English   中英

如何在jar中導入文件?

[英]How import a file in a jar?

我有這個項目,它具有這種結構

Home
 graphics
    field.txt
    example.java

我需要在jar的example.java中加載field.txt,並且使用:

getClass().getClassLoader().getResource("field.txt").toUri();

但是這段代碼給了我“空指針異常”。有人可以幫助我嗎?

要讀取它必須在類路徑中的文件,可以將該文件放入包含.class文件的文件夾中,或者使用java -cp選項將其添加到類路徑中。

example.class.getResource(“/graphics/field.txt“);

該類應該屬於同一個jar。 對於Class.getResource,可以使用相對的“ field.txt”(相同的程序包)。 使用ClassLoader,將尋求所有類路徑的絕對路徑:“ graphics / field.txt”。

要立即閱讀(從來不寫)使用getResourceAsStream或的URI getResource 可以在URI上使用路徑。 Files.copy(...)


一個人至少不能不應該寫一個資源文件(因為它可以駐留在jar中jar:file://... ;甚至jar可能被密封了; jvm可能會緩存資源)。 將其保留為只讀模板。 從不File

一種技術是在System.getProperty("user.home")創建一個名為directory的應用程序,然后在其中復制模板。

問題不在於您的代碼,而在於您如何構建和打包jar文件。 您將需要澄清當前如何構建jar(使用ant,maven,eclipse等?)。

許多文章還建議您將資源與源代碼(.java)分開,並且許多IDE將允許您將文件夾標記為資源文件夾來支持這種分離的方式。 甚至maven都可以讓您自定義。

請參閱以下文章:

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM