2014-09-29 143 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()会更有效率。

相关问题