2012-08-15 103 views
0

我想在Tomcat上运行服务器应用程序时在磁盘上打开文件。当打印我的classpath中我得到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工作空间),所以并不是所有的团队成员必须更新其设置。

我使用环境:

  • 的Tomcat 6.0
  • 的Eclipse的Java EE IDE为Web开发者,版本:太阳神服务版本2
  • 的Maven 3.0.3(r1075438; 2011-02 -28 18:31:09 + 0100)

回答

1

在Maven项目中,resources中的文件通常打包在某个类路径中。试试这个:

InputStream in = this.getClass().getClassLoader().getResourceAsStream("whatever/myfile.txt"); 

这是一个Web应用程序,它被Maven打包为.war?