powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Нужно создать jar, который будет читать настройки из внешнего properties файла
15 сообщений из 15, страница 1 из 1
Нужно создать jar, который будет читать настройки из внешнего properties файла
    #39753569
Molasar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет!

Я делаю отдельный jar файл, как библиотеку, для другого проекта. В этом jar файле несколько классов и файл properties, из которого классы читают настройки.
Как можно собрать jar файл так, чтобы файл properties был вне jar файла, но при этом классы в jar файле имели к нему доступ?
...
Рейтинг: 0 / 0
Нужно создать jar, который будет читать настройки из внешнего properties файла
    #39753576
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Molasar,
Библиотека = jar.
Значит файл вне jar будет вне библиотеки.
...
Рейтинг: 0 / 0
Нужно создать jar, который будет читать настройки из внешнего properties файла
    #39753580
Molasar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да, файл properties должен лежать вне библиотеки. Файл properties должен лежать в той же паке, что и jarPetro123Molasar,
Библиотека = jar.
Значит файл вне jar будет вне библиотеки.
...
Рейтинг: 0 / 0
Нужно создать jar, который будет читать настройки из внешнего properties файла
    #39753588
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Molasar,
Jar это zip.
Не вижу смысла рядом с zip иметь еше и файл.
...
Рейтинг: 0 / 0
Нужно создать jar, который будет читать настройки из внешнего properties файла
    #39753601
Kachalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Molasarфайл properties был вне jar файла, но при этом классы в jar файле имели к нему доступ?
- properties должен быть доступен в CLASSPATH (добавить файл в classpath можно по разному, например указав путь к нему как параметр JVM)
- дальше его можно читать через getResourceAsStream
...
Рейтинг: 0 / 0
Нужно создать jar, который будет читать настройки из внешнего properties файла
    #39753663
Molasar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А для этого нужен Maven проект создавать?KachalovMolasarфайл properties был вне jar файла, но при этом классы в jar файле имели к нему доступ?
- properties должен быть доступен в CLASSPATH (добавить файл в classpath можно по разному, например указав путь к нему как параметр JVM)
- дальше его можно читать через getResourceAsStream
...
Рейтинг: 0 / 0
Нужно создать jar, который будет читать настройки из внешнего properties файла
    #39753713
Kachalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MolasarА для этого нужен Maven проект создавать?
- нет, для чего бы он мог понадобиться? разве что JAR-создавать, но это можно десятком разных способов сделать и без мавена
...
Рейтинг: 0 / 0
Нужно создать jar, который будет читать настройки из внешнего properties файла
    #39753842
Molasar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот одно из решений:

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
package javaapplication6;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Properties;

public class JavaApplication6 {
    
    private static final String PROPERTIES_FILE_NAME = "/tmodule.properties";
    
    public static void main(String[] args) throws FileNotFoundException, IOException {
               
        Properties appProps = new Properties();
        
        File jarPath = new File(JavaApplication6.class.getProtectionDomain().getCodeSource().getLocation().getPath());
        String propertiesPath = jarPath.getParentFile().getAbsolutePath();
        appProps.load(new FileInputStream(propertiesPath + PROPERTIES_FILE_NAME));
        
        String senderType = appProps.getProperty("senderType");
        System.out.println(senderType);
       
    }
}
...
Рейтинг: 0 / 0
Нужно создать jar, который будет читать настройки из внешнего properties файла
    #39753862
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Molasar,
Вполне.
При желании можно и имя параметром передавать.
...
Рейтинг: 0 / 0
Нужно создать jar, который будет читать настройки из внешнего properties файла
    #39754195
alex55555
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Molasarда, файл properties должен лежать вне библиотеки. Файл properties должен лежать в той же паке, что и jar
Ну и огребёшь гемороя с поддержкой. Либу всегда будут отделять от всего остального, ибо это правильно. А ты решил "я точно знаю как надо", только другие про это "точно" ничего не знают.
MolasarВот одно из решений
Плохое решение. Либа требует прав на чтение из каталогов с ограниченным доступом. Это приказ на расстрел либы.
...
Рейтинг: 0 / 0
Нужно создать jar, который будет читать настройки из внешнего properties файла
    #39754674
Molasar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А как тогда правильно делать?alex55555Molasarда, файл properties должен лежать вне библиотеки. Файл properties должен лежать в той же паке, что и jar
Ну и огребёшь гемороя с поддержкой. Либу всегда будут отделять от всего остального, ибо это правильно. А ты решил "я точно знаю как надо", только другие про это "точно" ничего не знают.
MolasarВот одно из решений
Плохое решение. Либа требует прав на чтение из каталогов с ограниченным доступом. Это приказ на расстрел либы.
...
Рейтинг: 0 / 0
Нужно создать jar, который будет читать настройки из внешнего properties файла
    #39754685
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Molasar,
Ты же не сказал подробности задачи.
...
Рейтинг: 0 / 0
Нужно создать jar, который будет читать настройки из внешнего properties файла
    #39754686
Фотография Dmitry.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Molasar,

а что это за jar-ка? в рамках чего она выполняется?

например для сервлета есть свой фолдер:

Код: java
1.
2.
ServletContext context = getContext();
String fullPath = context.getRealPath("/my.props");



конфиг директорию app/web сервера чаще всего получают через системную пропертю.
например для томката:

Код: java
1.
System.getProperty("catalina.base")



тебе и будущему админу твоего приложения решать как правильно
...
Рейтинг: 0 / 0
Нужно создать jar, который будет читать настройки из внешнего properties файла
    #39754687
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmitry.,
В веб вообще web.xml вместо него можно.
...
Рейтинг: 0 / 0
Нужно создать jar, который будет читать настройки из внешнего properties файла
    #39754749
Kachalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmitryнапример для сервлета есть свой фолдер:

Код: java
1.
2.
ServletContext context = getContext();
String fullPath = context.getRealPath("/my.props");



- но есть нюанс, описанный в документации:
This method returns null if the servlet container cannot translate the virtual path to a real path for any reason (such as when the content is being made available from a .war archive).
- ну и тема про права доступа к папке, о которой написал alex55555 , тоже актуальна - поместить файл в папку, в которую контейнер распакует war, не всегда возможно
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Нужно создать jar, который будет читать настройки из внешнего properties файла
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]