我已经使用Spring Boot创建了一个简单的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的测试机)。我正在centos上将应用程序(.jar)作为服务运行。
当我使用java -jar application.jar
在Windows系统上运行它时,它可以正常工作。但在测试系统(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/