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 |
EBTCalc (Android) Version 1.53 is now available | May 19, 2024 |
Vault 3 Security Enhancements | October 24, 2023 |
Vault 3 is now available for Apple OSX M2 Mac Computers! | September 18, 2023 |
Vault (for Desktop) Version 0.77 Released | March 26, 2023 |
EBTCalc (Android) Version 1.44 is now available | October 12, 2021 |
Vault (Desktop) Version 0.72 Released | October 6, 2021 |
EBT Compass is Now Available for Android Devices | June 2, 2021 |