我有一个java应用程序,我正在尝试加载将包含在jar中的文本文件。
当我getClass().getResource("/a/b/c/")
时,它可以为该路径创建URL,我可以将其打印出来,一切看起来都很好。
但是,如果我尝试getClass().getResource(/a/b/../")
,那么我会收到一个null
网址。
似乎不喜欢路径中的..
。有谁看到我做错了什么?如果它有用,我可以发布更多代码。
答案 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对象(及其同类)解析路径相同的方式进行规范解析。我可以认为你试图读取相对于另一条路径的资源吗?