The code below demonstrates how to load file(s), eg configuration, properties in the same directory with the jar file or the running class file.
try {
File jarLoc = new File(
MyClass.class.getProtectionDomain()
.getCodeSource().getLocation().toURI().getPath());
if(!jarLoc.isDirectory()) {
// if this is a jar file, the full path with jar name returned.
currentPath = jarLoc.getParentFile().getPath();
} else {
// if this is a class file, full path until the parent directory
currentPath = jarLoc.getPath();
}
String pathToFile = "currentPath + fileName.fileExtension";
} catch (URISyntaxException e) {
e.printStackTrace();
}
The code below demonstrates how to load file's content in the jar file or in the classpath.
InputStream in = getClass().getResourceAsStream(path);
BufferedReader reader = new BufferedReader(new InputStreamReader(in));
String line = null;
String content = "";
while ((line = reader.readLine()) != null) {
content += line;
}
OR
new String(Files.readAllBytes(Paths.get(path)))
Done!!