我有一个 java 应用程序,我正在尝试加载将包含在 jar 中的文本文件。
当我做getClass().getResource("/a/b/c/")
,它能够为该路径创建 URL,我可以将其打印出来,一切看起来都很好。
但是,如果我尝试getClass().getResource(/a/b/../")
,那么我会得到一个null
返回一个 URL。
它似乎不喜欢..
在路径中。有人看到我做错了什么吗?如果有帮助,我可以发布更多代码。
我有一个 java 应用程序,我正在尝试加载将包含在 jar 中的文本文件。
当我做getClass().getResource("/a/b/c/")
,它能够为该路径创建 URL,我可以将其打印出来,一切看起来都很好。
但是,如果我尝试getClass().getResource(/a/b/../")
,那么我会得到一个null
返回一个 URL。
它似乎不喜欢..
在路径中。有人看到我做错了什么吗?如果有帮助,我可以发布更多代码。
类中的normalize()
方法(其中有四个)FilenameUtils
可以帮助您。它在Apache Commons IO 库中。
final String name = "/a/b/../";
final String normalizedName = FilenameUtils.normalize(name, true); // "/a/"
getClass().getResource(normalizedName);
您在 getResource() 中指定的路径不是文件系统路径,并且无法以与 File 对象(及其同类)解析路径相同的方式进行规范解析。我可以认为您正在尝试读取相对于另一条路径的资源吗?