2014-09-29 187 views
0

我有以下來源結構將文件夾添加到classpath中

/src/main/java 
/src/main/resources 
/src/main/resources/stuff 
/src/main/resources/stuff/1.txt 
/src/main/resources/stuff/2.txt 

在我的代碼通過訪問的東西文件夾中的文件:

ClassLoader.class.getResource("/stuff/1.txt").getFile() 

當這個被部署在部署這樣的:

/ 
/lib 
/lib/my-app.jar 
/lib/other.jar 
/lib/stuff 

目前我的類路徑設置爲:lib/*但我不能化解lib/stuff/1.txt以我上面的方式。我需要在類路徑上設置上述代碼的工作方式?

+1

太模糊。這似乎是一個基於目錄結構的Maven項目。你的應用程序如何打包?它是如何部署的?它是如何執行的?爲什麼使用getResource()。getFile()而不僅僅是使用100%可移植的getResourceAsStream()? – Gimby 2014-09-29 15:09:39

回答

0

this blog中指出的,它可能是使用相對路徑和絕對路徑之間的差異。

ClassLoader.class.getResource("lib/stuff/1.txt").getFile() 

正如@Gimby指出的那樣,使用getResourseAsStream()會更有效率。

相關問題