System.getProperty()和class.getResource()这两个方法是干什么用的,看java doc文档说它们是获得系统资源,那么什么样的资源可以获得?我可不可以自己设置一些资源?

解决方案 »

  1.   

    System.getProperty()是获得系统属性,你可以打印出来看看,,class.getResource是获取外部的资源,,如有类Test,引用的时候我们可以用Test test=new Test();test.class.getResourceAsStream("test.properties");
      

  2.   

    getProperty()有一个String类型的参数,我如何把所有的系统属性全部打印出来?
    什么是外部资源?test.properties是什么文件?在哪里?
    为什么在new Text();后面加上一句话,他是干什么用的?
      

  3.   

    调用System.getProperties()可以返回一个Properties类的对象。
    这个类就是一个hashtable,你可以把系统的所有属性打印出来,包括它的key和value,这些系统属性包括比如path,os,version
      

  4.   

    1。枚举所有系统属性
    import java.util.Properties;
    import java.util.Enumeration;
    Properties pp = System.getProperties();
    Enumeration en = pp.propertyNames();
    while (en.hasMoreElements()){
    String key=(String) en.nextElement();
    String value=(String) pp.getProperty(key);
    System.out.println(key+"="+value);
    }可以用System.setProperty(key, value)设置自己的系统属性,不过程序退出后就不生效了。2。Class.getResource()方法委托装入该类的类装载器,返回一个用于读取类文件资源的URL;或者,当指定的类名字不能在当前的classpath中找到时,Class.getResource()方法返回null。
    假设你的当前Public类是Check,你用System.out.println(Check.class.getResource(""));就能得到当前类的绝对路径。
      

  5.   

    getResource
    public URL getResource(String name)查找带有给定名称的资源。查找与给定类相关的资源的规则是通过定义类的 class loader 实现的。此方法委托给此对象的类加载器。如果此对象通过引导类加载器加载,则此方法将委托给 ClassLoader.getSystemResource(java.lang.String)。 
    在委托前,使用下面的算法从给定的资源名构造一个绝对资源名: 如果 name 以 '/' ('\u002f') 开始,则绝对资源名是 '/' 后面的 name 的一部分。 
    否则,绝对名具有以下形式: 
       modified_package_name/name
    其中 modified_package_name 是此对象的包名,该名用 '/' 取代了 '.' ('\u002e')。 
    参数:
    name - 所需资源的名称 
    返回:
    一个 URL 对象;如果找不到带有该名称的资源,则返回 null