Попробуйте получить путь к банке с этим кодом:
String path = YourClass.class.getProtectionDomain().getCodeSource().getLocation().toURI().getPath();
Затем вы можете удалить часть "* .jar" с помощью:
path=path.substring(0, path.lastIndexOf('/')+1);
У меня была та же проблема с java-игрой, когда мне нужно было открыть файл в том же каталоге, где был jar-файл.
Двойной щелчок по банке в linux не открыл файл. Конечно, вы можете открыть командную строку и изменить dir на jar dir, а затем запустить jar оттуда, но мне нужно было дважды щелкнуть по банке.