Question

I have a java app where I'm trying to load a text file that will be included in the jar.

When I do getClass().getResource("/a/b/c/"), it's able to create the URL for that path and I can print it out and everything looks fine.

However, if I try getClass().getResource(/a/b/../"), then I get a null URL back.

It seems to not like the .. in the path. Anyone see what I'm doing wrong? I can post more code if it would be helpful.

Was it helpful?

Solution

The normalize() methods (there are four of them) in the FilenameUtils class could help you. It's in the Apache Commons IO library.

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

OTHER TIPS

The path you specify in getResource() is not a file system path and can not be resolved canonically in the same way as paths are resolved by File object (and its ilk). Can I take it that you are trying to read a resource relative to another path?

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top