I have following structure in jar
myjar.jar -> com -> MYProgram.class
-> file.txt
In MYProgram i am trying to do:
getClass().getResourceAsStream("../file.txt")
I am getting NullpointerException when i try to read the inputstream..
Where is it going wrong ?
Either use
getClass().getResourceAsStream("/file.txt")
or
getClass().getClassLoader().getResourceAsStream("file.txt")
( ClassLoader.getResourceAsStream
always takes an "absolute" resource name.)
I don't believe navigating up the "directory hierarchy" works in getResourceAsStream
- the path either has to be relative to the given class but without navigating back up the tree, or it has to be absolute to start with.
Try the absolute path:
getClass().getResourceAsStream("/file.txt")
The Javadoc for getResourceAsStream
says:
- If the name begins with a '/' ('\/'), then the absolute name of the resource is the portion of the name following the '/'.
Otherwise, the absolute name is of the following form:
modified_package_name/name
Where the modified_package_name is the package name of this object with '/' substituted for '.' ('\.').
This would turn your path into this absolute path:
/com/../file.txt
I don't think the ..
notation is respected. It literally looks for the above absolute path.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.