请教:Java中的系统属性与.properties文件的自动加载      Java的java.lang.System类提供了getPropertie方法,用于获取用户工作 环境信息,默认的会返回诸如:user.home, file.separator等本地信息。
      如需自定义属性,可在运行时通过给java.exe 指定-D选项加入,如:
           java -Dwangwei=MyName MyClass     那么除了在命令行通过-D选项有没有别的办法呢?好像记得可以书写一个. properties文件,系统就会自动装载,现在就是想不起来,这个文件应该放在什么 地方?文件的名字应该叫什么?

解决方案 »

  1.   

    我在修改另外的一个软件,它用脚本语言接管了tomcat的启动,启动时传入了一些系统属性的设置,我现在不想接管tomcat的启动,所以,需要另外的加载系统属性的方法.
      

  2.   

    用:
    public static void main(String[] args){
    Properties p=System.getProperties() ;
    p.list(System.out);
    }
    看看有没有你要的?
      

  3.   

    在程序里写load,
    或者用Ant来运行你的java程序是可以做到的
      

  4.   

    Properties p = new Properties();
    try {
    p.load( new FileInputStream("你的properties文件名") );
    }
    catch (Exception e) {
    System.out.println( e );
    }
    System.out.println( dp.getProperty( "属性1") );
      

  5.   

    这个问题似乎没什么必要吧?就是普通的Properties.load就可以了啊。至于如何自启动,tomcat的listener可以启动,servlet的init可以启动,你自己装载时把properties的路径加载进去,然后写个init方法一样可以启动。
      

  6.   

    public static void main(String[] args){
    Properties p=System.getProperties() ;
    p.list(System.out);
    }
      

  7.   

    不自己加代码似乎不行吧
    同意mxlmwl的观点
      

  8.   


    任何资源,在还没到真正使用的时候“提前”加载,都是一种浪费!
    所以没有必要一定要在web server启动时加载其实,用单例模式,在首次使用时加载能达到同样的效果如果非要在启动时加载,那就写个autoStartServlet
    然后,修改web.xml如下:
    <servlet><..name/><..class/>
     <load-on-startup>2</load-on-startup>
    </servlet>不要研究怎么修改服务器的config,换个服务器怎么办
      

  9.   

    你说的这些系统属性文件,如font.properties等,Java默认放到java.home/jre/lib下面,其实放到哪里都无所谓,只要在你的代码中指定文件路径,能够找的到就可以了, -D是用来指定JVM参数的,可能不能随便添加自己的参数吧。