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

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

Код: 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
27.12.2018, 13:05
    #39753862
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужно создать jar, который будет читать настройки из внешнего properties файла
Molasar,
Вполне.
При желании можно и имя параметром передавать.
...
Рейтинг: 0 / 0
27.12.2018, 20:19
    #39754195
alex55555
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужно создать jar, который будет читать настройки из внешнего properties файла
Molasarда, файл properties должен лежать вне библиотеки. Файл properties должен лежать в той же паке, что и jar
Ну и огребёшь гемороя с поддержкой. Либу всегда будут отделять от всего остального, ибо это правильно. А ты решил "я точно знаю как надо", только другие про это "точно" ничего не знают.
MolasarВот одно из решений
Плохое решение. Либа требует прав на чтение из каталогов с ограниченным доступом. Это приказ на расстрел либы.
...
Рейтинг: 0 / 0
28.12.2018, 18:31
    #39754674
Molasar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужно создать jar, который будет читать настройки из внешнего properties файла
А как тогда правильно делать?alex55555Molasarда, файл properties должен лежать вне библиотеки. Файл properties должен лежать в той же паке, что и jar
Ну и огребёшь гемороя с поддержкой. Либу всегда будут отделять от всего остального, ибо это правильно. А ты решил "я точно знаю как надо", только другие про это "точно" ничего не знают.
MolasarВот одно из решений
Плохое решение. Либа требует прав на чтение из каталогов с ограниченным доступом. Это приказ на расстрел либы.
...
Рейтинг: 0 / 0
28.12.2018, 19:17
    #39754685
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужно создать jar, который будет читать настройки из внешнего properties файла
Molasar,
Ты же не сказал подробности задачи.
...
Рейтинг: 0 / 0
28.12.2018, 19:20
    #39754686
Dmitry.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужно создать jar, который будет читать настройки из внешнего properties файла
Molasar,

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

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

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



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

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



тебе и будущему админу твоего приложения решать как правильно
...
Рейтинг: 0 / 0
28.12.2018, 19:24
    #39754687
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужно создать jar, который будет читать настройки из внешнего properties файла
Dmitry.,
В веб вообще web.xml вместо него можно.
...
Рейтинг: 0 / 0
28.12.2018, 23:37
    #39754749
Kachalov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужно создать jar, который будет читать настройки из внешнего properties файла
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
Форумы / Java [игнор отключен] [закрыт для гостей] / Нужно создать jar, который будет читать настройки из внешнего properties файла / 15 сообщений из 15, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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