zoukankan      html  css  js  c++  java
  • Java在静态代码块中读取properties文件的思考

    http://lavasoft.blog.51cto.com/62575/62174/


    public final class TestProperties { 
        private static String param1; 
        private static String param2; 
    
        static { 
            Properties prop = new Properties(); 
            InputStream in = Object.class.getResourceAsStream("/test.properties"); 
            try { 
                prop.load(in); 
                param1 = prop.getProperty("initYears1").trim(); 
                param2 = prop.getProperty("initYears2").trim(); 
            } catch (IOException e) { 
                e.printStackTrace(); 
            } 
        } 
    
        /** 
         * 私有构造方法,不需要创建对象 
         */ 
        private TestProperties() { 
        } 

    运行期,报找不到TestProperties,


    我在web项目里建立了读取配置文件的类ConfigProperties,配置文件放在classes下面,使用“properties.load(Object.class.getResourceAsStream("/config.properties"))”加载配置文件,然后在一个静态常量类(SystemConstants)里面读取这个类以获得配置变量值,Web项目使用过程中那个常量类会报错“java.lang.NoClassDefFoundError: Could not initialize class SystemConstants”。
    如果直接使用main调用的话不会出错。
    如果换成“自己定义的类名.class.getResourceAsStream”就不会出错了,这可能也与Web项目的根路径什么的有关吧。


    将Object.class.getResourceAsStrream   改为    TestProperties.class.get.....

    所以将

    Object.class.getResourceAsStream
    Object.class.getResourceAsStream
  • 相关阅读:
    window.loaction.href 不自动跳转的问题
    SQL语句
    C# 里面swith的或者
    跨域
    memcached总结
    应用 memcached 提升站点性能
    安装和使用 memcached
    Unity3D学习笔记(三十):Lua
    Unity3D学习笔记(二十九):AssetBundle
    Unity3D学习笔记(二十八):Editor
  • 原文地址:https://www.cnblogs.com/silyvin/p/9106812.html
Copyright © 2011-2022 走看看