[英]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.