There's the best way I've found for an application to find the path of the folder containing its code:
Here's the code:
Note: If you search for other solutions to this problem, you'll find many people telling you to just call System.getProperty("user.dir"). This doesn't work in general, because it merely returns the current directory, not the directory that contains your application's code.
public static String getRootPath() {
String rootPath;
try {
rootPath =
URLDecoder.decode(FileUtils.class.getProtectionDomain().getCodeSource().getLocation().getPath(), "UTF-8");
String osName = System.getProperty("os.name");
if (osName.toUpperCase().contains("WINDOWS")) {
rootPath = rootPath.substring(1);
}
rootPath = new File(rootPath).getParent();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
// If an error occurred, default to current directory.
rootPath = System.getProperty("user.dir");
}
Globals.getLogger().info(MessageFormat.format("getRootPath: {0}", rootPath));
return rootPath;
}
| Title | Date |
| Node.js + Express: How to Block Requests by User-Agent Headers | January 7, 2026 |
| Vault 3 is Now Available for Windows on ARM Machines! | December 13, 2025 |
| Vault 3: How to Include Outline Text in Exported Photos | October 26, 2025 |
| .NET Public-Key (Asymmetric) Cryptography Demo | July 20, 2025 |
| Raspberry Pi 3B+ Photo Frame | June 17, 2025 |
| EBTCalc (Android) Version 1.53 is now available | May 19, 2024 |
| Vault 3 Security Enhancements | October 24, 2023 |