Чтение файла возле JAR

172
21 августа 2018, 02:40

В одном каталоге с jar-файлом лежит properties файл, который нужно прочитать. Сейчас открываю файл так

InputStream file = new FileInputStream("my.properties");

но смущает, что, по сути, я открываю файл в текущем каталоге. Всегда ли текущий каталог будет каталогом где лежит jar? А если нет, то как правильно открывать файл?

Answer 1

Нет, текущий каталог не всегда будет равен каталогу, в котором лежит jar. Получить каталог расположения jar-файла можно так:

File parent = new File(MyClass.class
                              .getProtectionDomain()
                              .getCodeSource()
                              .getLocation()
                              .toURI()).getParent();
Answer 2
String path = MyClass.class.getProtectionDomain().getCodeSource().getLocation().getPath();
path = new File(path).getParent();
InputStream file = new FileInputStream(path + "/my.properties");
READ ALSO
Установка NetBeans, пакет не найден

Установка NetBeans, пакет не найден

Не могу установить Netbeans, переменная среда указана, но установка не начинается

158
Как упростить вывод?

Как упростить вывод?

Вывести arrayList в обратном порядке, а затем стереть

212
модификаторы доступа top level classes

модификаторы доступа top level classes

Не нахожу информацию, какие могут использоваться модификаторы доступа для top level classes?

167
Смысл функции hash() в HashMap (java 7 и java 8)

Смысл функции hash() в HashMap (java 7 и java 8)

В Java 7 функция hash() класса HashMap имеет следующий вид:

201