2012-02-17 96 views
2

我正在maven web应用程序中工作。我需要读取一个目录(例如:文件)在我的WebApp文件夹,如下所示,如何读取Maven Web应用程序的webapp文件夹中的目录

Java.io.File file = new Java.io.File("path"); 

但我不知道怎么在这里指定目录的路径。

+0

这个问题与Maven有什么关系? – 2012-02-17 09:59:59

+0

我正在从事ina maven web应用程序。因此,在Maven工作的人会知道Maven应用程序中的文件夹层次结构。 – Prince 2012-02-17 10:03:15

+1

你认为web-app目录结构(部署在服务器上)与你的maven目录结构相同是错误的 – 2012-02-17 10:05:33

回答

2

你不应该给本地路径地址。路径应该是相对地址,例如(.war)文件夹下的/files/images

要正确使用相对路径,我建议你到目标文件夹添加到pom.xml中的资源definiton,请浏览网页 http://www.mkyong.com/maven/how-to-change-maven-resources-folder-location/ http://maven.apache.org/guides/introduction/introduction-to-the-standard-directory-layout.html

你可以参考资源文件夹轻松地像这样的东西:

this.class.getResource("Mydirectory/SubDirectory"); 
+0

我按照你的说法试过了。但它不工作。 Java.io.File file = new Java.io.File(“/ files/subdirectory”); – Prince 2012-02-17 09:42:51

+0

你能发送你的web-app目录层次结构的截图吗? – Juvanis 2012-02-17 09:44:13

+0

我的网页应用程序目录层次结构为Myapplication/src/main/webapp/Mydirectory/SubDirectory – Prince 2012-02-17 09:49:35

0

如有疑问亲戚路径是如何工作的,它总是最好做这样的事情:

System.out.println(new File("/my/desired/directory").getAbsolutePath()); 

这将打印出类路径将查找文件的路径。

假设:

  • servlet容器的webapps目录位于:/var/lib/tomcat6/webapps
  • 你的web应用被称为my-webapp.war

你应该看到下面的输出:/var/lib/tomcat6/webapps/my-webapp/my/desired/directory

另一个指针:你提到你正在寻找webapp目录。我希望你知道这个目录不会以*.war - 结尾,它的内容将会是

+0

我使用Glassfish作为Web服务器 – Prince 2012-02-17 09:56:14

0

战争文件在部署到应用程序服务器时并不总是展开,因此文件系统中可能不存在相对路径,全部为

最好的选择是使用类加载器的getResource,它将返回类路径(WEB-INF/lib目录等)中的东西,或者使用ServletContext的getResource()方法在Web应用程序中查找事物本身。

相关问题