В одном каталоге с 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");
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Не могу установить Netbeans, переменная среда указана, но установка не начинается
Не нахожу информацию, какие могут использоваться модификаторы доступа для top level classes?
В Java 7 функция hash() класса HashMap имеет следующий вид: