eclipse中相对文件名路径的冲突

时间:2013-03-15 11:15:29

标签: java java-ee relative-path absolute-path

在我的应用程序中,我正在读取一个XML文件(比如ABC.xml),它位于WebContent / META-INF文件夹中并使用DOM解析器解析它 如下

File xmlFile = new File("WebContent//META-INF//ABC.xml");
parser.parse(new InputSource(new FileReader(xmlFile.getAbsolutePath())));

显示文件未找到异常,当我打印xmlFile.getAbsolutePath()时显示

D:\Softwares\SDE_7\eclipse\WebContent\META-INF\ABC.xml

这是我的日食设置所在的地方

所以我尝试在简单的java程序中使用相同的逻辑并打印它显示的绝对路径 正确的路径(项目文件夹结构)和程序正常

D:\GME_WorkSpace\Practice_1\WebContent\META-INF\sample.xml

为什么会发生冲突?我怎样才能纠正它?

2 个答案:

答案 0 :(得分:1)

如果你在谈论WebContent,听起来你已经写了一个Servlet。

在这种情况下,您应该使用ServletContext来查找文件。

getServletContext()。getRealPath(...)将获取Servlet中相对文件名的完整操作系统路径。

getServletContext()可以从任何继承自HttpServlet的类中调用。

答案 1 :(得分:0)

ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
URL url = classLoader.getResource("WebContent//META-INF//ABC.xml");
File file = new File(url.toURI());