С Новым годом! Форум программистов, компьютерный форум, киберфорум
Java
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/9: Рейтинг темы: голосов - 9, средняя оценка - 5.00
0 / 0 / 1
Регистрация: 25.10.2012
Сообщений: 87

Программа не видит properties-файл при её запуске двойным кликом

12.10.2017, 16:52. Показов 1945. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Написал гуишное приложение (на свинге). Приложение работает с базой данных. Настройки для подключения к базе данных храню в проперти-файле. Кладу его в корень проекта (в IDEA). Путь прописываю так:
Java
1
    private static final String PATH_TO_FILE_PROPERTIES = "settings_db_mysql.properties";
В ИДЕИ всё работает, файл подцепляется, с базой устанавливается соединение, и в общем всё нормально. Как создаютджар-ник в ИДЕИ и кладу его в любую папку, а рядом кладу этот пропертис-файл, то при запуске программы двойным кликом, она не находит этот файл. Пробую это в линуксе убунту. Кстати, если запускать программу из командной строки, то она находит этот файл.

Также ставил на виртуальную машину виндоуз 7, и там пробовал запустить программу двойным кликом. Всё работает, программа находит файл. Из командной строки тоже всё работает.

Пробовал разные варианты: дописывал в начале пути к файлу new File("") + File.separator, дописывал System.getProperty("user.dir"). Ничего не помогает. Свойство user.dir при запуске программы двойным кликом возвращает домашний каталог пользователя.

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

Добавлено через 2 часа 18 минут
В итоге, не без помощи людей с других форумов, смог найти некоторое решение. Получился такой метод для получения пути к папке, в которой лежит джар-ник:
Java
1
2
3
4
5
6
7
8
9
10
11
    private static String getClassLocation(Class<?> c) {
        URL pathURL = c.getProtectionDomain().getCodeSource().getLocation();
        try {
            Path path = Paths.get(pathURL.toURI());
            String rootStr = path.getRoot().toString();
            return rootStr + path.subpath(0, path.getNameCount()-1).toString() + File.separator;
        } catch (URISyntaxException e) {
            e.printStackTrace();
            return "";
        }
    }
На вход подаю класс, в котором лежит этот метод. Решение протестировал на убунте, и на вин7 - всё работает. Так что, думаю, на этом закончу.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
12.10.2017, 16:52
Ответы с готовыми решениями:

Не видит properties файл
Properties prop = new Properties(); prop.load(new FileInputStream(&quot;config.properties&quot;)); prop.setProperty(&quot;17&quot;,...

Не запускается файл *.py двойным кликом
Начал изучать PyQt по книге &quot;Прохоренок Н.А. PyQt. Создание оконных приложений на Python 3 (2011)&quot;. После 4 листинга написано...

Выставить интервал отличия между кликом и двойным кликом
Подскажите пожалуйста, как выставить интервал отличия двойного клика от одинарного. Например по TStringGrid.

2
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
12.10.2017, 18:12
Цитата Сообщение от lich130387 Посмотреть сообщение
c.getProtectionDomain().getCodeSource(). getLocation();
* * * * try {
какая наркомания Т_Т
0
0 / 0 / 1
Регистрация: 25.10.2012
Сообщений: 87
12.10.2017, 18:44  [ТС]
Что именно?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
12.10.2017, 18:44
Помогаю со студенческими работами здесь

Выбор значения DataGridView двойным кликом
Подскажите! Есть DataGridView. Нужно двойным кликом, строка копировалась в другой DataGridView

Отключение разворачивания окна двойным кликом
У меня в проекте идет форма без границ (FormBorderStyle - None), MaximizeBox и MinimizeBox в значении False. Проблема заключается в том,...

При запуске exe-файла программа не видит картинки
сами картинки находятся в папке с проектом, при запуске из vs все исправно работает, однако при запуске .exe файла из папки debug оно эти...

Вывод строки двойным кликом по значению listbox
Добрый день. Есть поиск по базе (лист2). Поиск реализован с помощью listbox. Подскажите, как можно сделать вывод не просто значения...

Запретить расширять окно двойным кликом Win7
Подскажите как запретить расширять окно при двойном клике на семерке. FormBorderStyle = FixedToolWindow все хорошо но двойной клик она...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru