簡體   English   中英

getClass()。getResource(“/”)在命令行中返回null

[英]getClass().getResource(“/”) returns null in command line

我正在嘗試在/src/main/resources/file.txt中讀取我的maven項目中的文件。

我正在使用

URL url=this.getClass().getResource("/");
String filePath=url.getPath()+"file.txt";

當通過eclipse運行時,url對象獲取正確的值。

但是,當我打包jar並在命令行中運行它時:

jar -cp myjar.jar SampleTest

它為'url'對象返回null並在下一行中拋出NullPointerException。

我使用文件瀏覽器打開了我的Jar文件並進行了檢查。 它在Jar內的“/”位置有'file.txt'。

我哪里錯了?

jar文件中通常沒有目錄。 因此它將返回null


如果要獲取文件,可以直接獲取該資源:

URL fileUrl = getClass().getResource("/file.txt");
...

或者干脆:

InputStream fileInputStream = getClass().getResourceAsStream("/file.txt");

您應該將該文件移動到CLASSPATH中,並按以下方式獲取:

InputStream is = this.getClass().getResourceAsStream("file.txt");

暫無
暫無

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

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