В одном каталоге с jar-файлом лежит properties файл, который нужно прочитать. Сейчас открываю файл так
InputStream file = new FileInputStream("my.properties");
но смущает, что, по сути, я открываю файл в текущем каталоге. Всегда ли текущий каталог будет каталогом где лежит jar? А если нет, то как правильно открывать файл?
Нет, текущий каталог не всегда будет равен каталогу, в котором лежит jar. Получить каталог расположения jar-файла можно так:
File parent = new File(MyClass.class
.getProtectionDomain()
.getCodeSource()
.getLocation()
.toURI()).getParent();
String path = MyClass.class.getProtectionDomain().getCodeSource().getLocation().getPath();
path = new File(path).getParent();
InputStream file = new FileInputStream(path + "/my.properties");
Сборка персонального компьютера от Artline: умный выбор для современных пользователей