I need help getting a file from a file to use it. The file is specified in the -cp option when running jar through the console.
run the jar using:
java -cp myjar.jar:dir1/dir2/myfile.txt com.company.Main
execution result:
Exception in thread "main" java.lang.NullPointerException at com.company.Main.main(Main.java:11)
source code:
package com.company;
import java.io.InputStream;
public class Main {
public static void main(String[] args) {
ClassLoader classLoader = Main.class.getClassLoader();
InputStream resource = classLoader.getResourceAsStream("dir1/dir2/myfile.txt");
System.out.println(resource.toString());
}
}
project tree
-- сom ---- company ------ Main.java
How do I get that file from -cp?
Advertisement
Answer
Since you specify dir1/dir2/myfile.txt in the getResourceAsStream() call, you want the directory containing dir1 on the classpath, which would be the working directory, i.e. .:
java -cp myjar.jar:. com.company.Main
The classpath can only specify:
- Directories
- Jar files
No other type of file is supported.