powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Как в файле *.properties задать путь к ресурсу с помощью системной переменной
5 сообщений из 5, страница 1 из 1
Как в файле *.properties задать путь к ресурсу с помощью системной переменной
    #33021983
maxq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нужно в файле с расширением properties задать путь к ресурсу с помощью системной переменной

Есть файл jcrontab.properties
Код: plaintext
1.
2.
3.
4.
5.
org.jcrontab.data.file = C:/salers/defaultroot/WEB-INF/classes/crontab
org.jcrontab.data.datasource = org.jcrontab.data.FileSource
org.jcrontab.Crontab.refreshFrequency =  3 
org.jcrontab.log.Logger = org.jcrontab.log.Log4JLogger
org.jcrontab.log.log4J.Properties = C:/salers/defaultroot/WEB-INF/classes/log4j.properties

В JAVA есть класса System в котором есть метод getProperties(String key), где одим из ключей есть user.dir который у меня для даного приложения равняеться C:/salers/defaultroot .

Как мне можна заменить C:/salers/defaultroot на user.dir
например :
Код: plaintext
org.jcrontab.data.file = {user.dir}/WEB-INF/classes/crontab

Может есть какойто формат для user.dir например толи {user.dir} толи {$user.dir} толи %user.dir% - Подскажите может кто знает

Или же на крайний случай : если создать системную переменную например DEFAULT_ROOT которая равняеться C:/salers/defaultroot , то как ее можна применить? в каком фортате ее задать? например толи {DEFAULT_ROOT } толи еще как может хто знает?

Зарание благодарен.
Maxq.
...
Рейтинг: 0 / 0
Как в файле *.properties задать путь к ресурсу с помощью системной переменной
    #33022644
wessen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если у тебя web-приложение, то с абсалютными путями можно не париться, контекст приложения можно получить так:
Код: plaintext
1.
2.
3.
4.
...
String realPath=getServletContext().getRealPath("/");
out.println(realPath);
...
...
Рейтинг: 0 / 0
Как в файле *.properties задать путь к ресурсу с помощью системной переменной
    #33022709
maxq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
wessenЕсли у тебя web-приложение, то с абсалютными путями можно не париться, контекст приложения можно получить так:
Код: plaintext
1.
2.
3.
4.
...
String realPath=getServletContext().getRealPath("/");
out.println(realPath);
...


Дело в том, что когда стартует у меня Crontab он вызывает метод init :
Код: plaintext
1.
2.
3.
ProjectProperties conf = ProjectPropertiesManager.getProjectProperties("jcrontab");
crontab = Crontab.getInstance();
crontab.init(conf);
который загружает jcrontab.properties в котором уже должно быть
Код: plaintext
1.
org.jcrontab.data.file = C:/salers/defaultroot/WEB-INF/classes/crontab
а до иницализации должно быть
Код: plaintext
1.
org.jcrontab.data.file = {user.dir}/WEB-INF/classes/crontab
или что похожее.

Вот я и хочу узнать если какието стандартные возможности для такой реализации. Так как все манипуляции происходят в файле с расширением properties, а это но сути текстовый файл который будет инициализироваться.

Хотя можна конечно до иницализации в файле сделать замену {user.dir} на C:/salers/defaultroot , а потом обратно но это не очень красиво хотелось бы выяснить может есть какието стандартные фичи.
...
Рейтинг: 0 / 0
Как в файле *.properties задать путь к ресурсу с помощью системной переменной
    #33022721
А.Грасоff™ JE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maxqхотелось бы выяснить может есть какието стандартные фичи.нет
...
Рейтинг: 0 / 0
Как в файле *.properties задать путь к ресурсу с помощью системной переменной
    #33026251
maxq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Поборол эту проблему причем очень легко :
Код: plaintext
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.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
 public   class  testCron  extends  HttpServlet{
     private   static  Crontab crontab= null ;

     public   void  init(){
         try {
            ProjectProperties conf = ProjectPropertiesManager.getProjectProperties("jcrontab");

            String dataFile = conf.getProperty("org.jcrontab.data.file","");
             if (!dataFile.equalsIgnoreCase("")) {
                dataFile = System.getProperty("user.dir") + dataFile;
                dataFile = dataFile.replaceAll("\\\\","/");
                conf.setProperty("org.jcrontab.data.file", dataFile);
                System.out.println("org.jcrontab.data.file = " + dataFile);
            }

            String log4JProperties = conf.getProperty("org.jcrontab.log.log4J.Properties","");
            if(!log4JProperties.equalsIgnoreCase("")) {
                log4JProperties = System.getProperty("user.dir") + log4JProperties;
                log4JProperties = log4JProperties.replaceAll("\\\\","/");
                conf.setProperty("org.jcrontab.log.log4J.Properties", log4JProperties);
                System.out.println("org.jcrontab.log.log4J.Properties = " + log4JProperties);
            }

            crontab = Crontab.getInstance();
            crontab.init(conf);            
        }
        catch(Exception e){
            System.out.println("ERROR IN testCRON");
            System.out.println(e.toString());
        }
    }

    public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
        response.setContentType("text/html");
        PrintWriter out = response.getWriter();
   }
}

а самое приятное что не нужно в методе destroy() возвращать настройки назад. Так как эти настройки будут действительны пока не вызвался метод destroy() для даного сервлета. Класс ProjectProperties наследован от Properties, а в классе ProjectPropertiesManager он синхронизируеться.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Как в файле *.properties задать путь к ресурсу с помощью системной переменной
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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