我想在Tomcat上运行服务器应用程序时在磁盘上打开一个文件。当我打印我的类路径时,我得到了
C:\JavaDev\tools\apache-tomcat-6.0.33\bin\bootstrap.jar;
C:\Program Files\Java\jdk1.6.0_23\lib\tools.jar
对我来说没什么意义,但是我再也没有基本的理解它是如何工作的。我的项目从哪里加载?他们不需要在课堂上吗?
这是我目前正在处理的域的目录布局:
src/main/java/com/company/product/domain/b/beans/MyClass.java
src/main/resources/whatever/myfile.txt
我尝试使用以下各种变体打开文件:
String filename = "../resources/whatver/myfile.txt";
URL url = MyClass.class.getResource(filename);
每次都是url==null
。我尝试过的其他路径变化包括:
whatver/myfile.txt
../whatver/myfile.txt
../../../../../../../resources/whatver/myfile.txt
我需要一个可以提交的解决方案(即不存储在Eclipse工作区中),因此并非所有团队成员都必须更新其设置。
这就是我正在使用的环境:
答案 0 :(得分:1)
在Maven项目中,resources
中的文件通常打包在类路径的某个地方。试试这个:
InputStream in = this.getClass().getClassLoader().getResourceAsStream("whatever/myfile.txt");
这是一个由Maven打包为.war的Web应用程序吗?