具有父目录引用的getResource

时间:2011-09-30 19:55:48

标签: java relative-path getresource

我有一个java应用程序,我正在尝试加载将包含在jar中的文本文件。

当我getClass().getResource("/a/b/c/")时,它可以为该路径创建URL,我可以将其打印出来,一切看起来都很好。

但是,如果我尝试getClass().getResource(/a/b/../"),那么我会收到一个null网址。

似乎不喜欢路径中的..。有谁看到我做错了什么?如果它有用,我可以发布更多代码。

2 个答案:

答案 0 :(得分:5)

FilenameUtils课程中的normalize() methods(其中有四个)可以帮助您。它位于Apache Commons IO library

final String name =  "/a/b/../";
final String normalizedName = FilenameUtils.normalize(name, true); // "/a/"
getClass().getResource(normalizedName);

答案 1 :(得分:2)

您在getResource()中指定的路径不是文件系统路径,并且无法以与File对象(及其同类)解析路径相同的方式进行规范解析。我可以认为你试图读取相对于另一条路径的资源吗?