作为服务运行的Java应用程序不会创建文件

时间:2019-11-06 13:01:36

标签: java spring-boot

我已经使用Spring Boot创建了一个简单的Java应用程序,该应用程序在启动时会创建文件(比如说/Store/store.txt),然后将这些文件用于读写目的。还已在logging.file=persist/consol-logs/fix-adaptor.log上配置了application.properties

现在的问题是以上文件均未创建(/Store/store.txtpersist/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

  1. 设置密码
    $ sudo passwd ravi@123

  2. application.jar复制到用户ravi的主目录中
    然后 $ sudo chown ravi:ravi /home/ravi/application.jar
    $ sudo chmod 500 /home/ravi/application.jar

  3. 创建符号链接
    $ sudo ln -s /home/ravi/application.jar /etc/init.d/my-application

  4. 正在运行的应用程序
    $ 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/

0 个答案:

没有答案