• springboot 打成的jar包在ClassLoader().getResource方法读取文件为null


    1、属性文件如下:

    10001=错误

    2、文件读取主要代码

    // getResource方式
    URL resourceURI = getClass().getClassLoader().getResource("");
    // getResourceAsStream方式
    InputStream stream = getClass().getClassLoader().getResourceAsStream("errorCode.properties");
    logger.info(">>>>>>>>>>>>>>>>>>>>>> errorCode stream " + stream);
    logger.info(">>>>>>>>>>>>>>>>>>>>>> resourceURI " + resourceURI);
    if (null == stream) {
        logger.warn("errorCode.properties file not find");
        return;
    }
    InputStreamReader reader = new InputStreamReader(stream,"UTF-8");
    properties.load(reader);
    Enumeration<?> keys = properties.propertyNames();
    while(keys.hasMoreElements()) {
        String key = (String) keys.nextElement();
        String value = properties.getProperty(key);
        logger.info("key :" + key + "- value:" + value);
    }

    2.1 使用idea启动读取测试

    2.2 使用java -jar xxx.jar启动测试

    从运行结果来看,使用getResourceAsStream方式可以读到jar中的文件,而使用getResource读取为空,在jar文件中查找资源和在文件系统中查找资源的方式是不一样的,尽量使用Stream流的方式操作资源文件。

    使用spring-boot-maven-plugin插件打出的fat-jar是不可以作为其他应用的jar依赖的,因为无法向普通的依赖jar那样去读取jar中的一些文件,这个和spring-boot-maven-plugin打包机制有关,可以换成使用maven-jar-plugin插件替换进行成可运行的的jar

  • 相关阅读:
    EXT 中的Grid实例
    JS正则表达式详解 转
    EXTJS制作的嵌套表格实例(点击一行,展开下面的子表)
    动态加载JS文件
    ExtJs WebService Json序列化(扩展JavaScriptSerializer类)收藏
    转载 悟透JavaScript
    《ExtJS2.0实用简明教程》之与服务器交互 extjs Ext.Ajax.request({}) params:
    Ext 动态添加grid 列数
    API中form相关
    生成用户界面
  • 原文地址:https://www.cnblogs.com/kingsonfu/p/11790745.html
Copyright © 2020-2023  润新知