Вы можете использовать Путь, чтобы сделать это:
Path path = Paths.get(YourMainClass.class.getProtectionDomain().getCodeSource().getLocation().toURI());
Путь имеет несколько методов для получения дополнительной информации.
Например, у меня есть этот JAR на рабочем столе, и я печатаю это:
System.out.println(path);
System.out.println(path.getRoot());
System.out.println(path.getParent());
Результаты:
java -jar C:\Users\gmunozme\Desktop\Test.jar
C:\Users\gmunozme\Desktop\Test.jar
C:\
C:\Users\gmunozme\Desktop
Проверьте это, надеюсь, вы можете использовать его.