SpringBoot_构建jar包之后文件读取路径问题

最近在写文件管理的模块,使用了springboot整合fdfs,在本地测试没问题之后,发布jar时出现了问题:

static {
        try {
            String filePath = new ClassPathResource("fdfs_client.conf").getFile().getAbsolutePath();
            ClientGlobal.init(filePath);
        } catch (Exception e) {
            e.getStackTrace();
        }
    }

上面的代码在本地idea运行是没有问题的,但是到了打包成jar包并且在命令行使用java -jar XXX.jar运行的时候,会读取不到文件的正确路径。建议改为以下方式:

    private int initFastDFS(String confFile){
        if (confFile.isEmpty()){
            return ErrNo.ERROR_FILEMGR_INIT;
        }

        String filePath = getFilePath(confFile);
        try {
            ClientGlobal.init(filePath);
        } catch (Exception e){
            e.printStackTrace();
            return ErrNo.ERROR_FILEMGR_INIT;
        }

        return ErrNo.ERROR_SUCCESS;
    }

    private String getFilePath(String file) {
        String userDir = System.getProperty("user.dir");
        String filePath = userDir + "/" + file;
        return filePath;
    }
    initFastDFS("fdfs_client.conf");

这样的话也存在问题,在C:\user\906760的命令行进行运行时候,需要将fdfs_client.conf对应的文件放在C:\user\906760目录下,才能正确读取。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章