Я создал простое Java-приложение, использующее весеннюю загрузку, которое создает файлы (скажем, /Store/store.txt
) при запуске, а затем использует эти файлы для чтения и записи. Также настроен logging.file=persist/consol-logs/fix-adaptor.log
на application.properties
.
Теперь проблема в том, что ни один из вышеуказанных файлов не создается (/Store/store.txt
или persist/consol-logs/fix-adaptor.log
).
Я использую Maven для сборки, которая дает мне исполняемый файл jar. Затем перемещаем банку по системе (которая является тестовой машиной, работающей с кентосом). Я запускаю приложение (.jar) в качестве службы на centos.
Это прекрасно работает, когда я запускаю его в своей системе Windows, используя java -jar application.jar
. но он не будет работать в тестовой системе (centos).
Когда я запускаю свое приложение в Windows (допустим, у меня есть jar в целевой папке), он создает все каталоги в целевой папке, но я неНе знаю, когда я запускаю его в системе Linux, где он должен создавать эти папки.
Что я делаю в системе Linux:
1. Созданный пользователь (допустим, ravi)
sudo useradd ravi
установить пароль
$ sudo passwd ravi@123
Скопировать application.jar
в домашний каталог пользователя ravi
затем $ sudo chown ravi:ravi /home/ravi/application.jar
$ sudo chmod 500 /home/ravi/application.jar
создать символическую ссылку
$ sudo ln -s /home/ravi/application.jar /etc/init.d/my-application
Запущенное приложение
$ sudo service my-application start
Может кто-нибудь помочь решить эту проблему?
Метод, который создает структуру каталогов:
private boolean createStructure() {
HashMap<String, String> config = configProvider.getConfig();
String fileLogPath = config.get("FileLogPath");
File file = new File(fileLogPath);
if (!file.exists()) {
file.mkdirs();
LOG.info("### Directories created: " + fileLogPath + " ###");
return file.exists();
}
LOG.info("### Directory creation failed: " + fileLogPath + " ###");
return file.exists();
}
Где FileLogPath=fix-adaptor/fix-logs/initiator/