在jdom、dom4j、sax等xml解析器中,怎么对在应用中需要解析的xml配置设置成相对路径啊,
我试了这几种解析器,还是无法获取相对路径的文件。            DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();
            DocumentBuilder builder=factory.newDocumentBuilder();
            InputStream is=new FileInputStream("mail.xml");
            Document doc=builder.parse(is);
            Element root=doc.getDocumentElement();
            NodeList nodeList=root.getChildNodes();
mail.xml文件就在该class下
依然报错:
java.io.FileNotFoundException: mail.xml (系统找不到指定的路径。)

解决方案 »

  1.   

    这里的“相对路径”应该是相对于 application 的“当前路径”吧?好像不是相对于 class 的位置。
      

  2.   

    其实如果放在class目录下可以用其它配置文件可以访问到conf.properties#####
    type=1
    ######
    username=aaa
    password=bbbCLASS访问方法import java.io.FileInputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.util.Properties;/**
     * @version 1.0
     */public class Config {
        // 配置文件名称
        private static String configFile="conf.properties";
        private static Properties properties = null;

        public Config(){
        }
        static{
            try {
    properties=new  Properties();
    InputStream fis=this.getClass().getResourceAsStream(configFile);
    properties.load(fis);
    fis.close();
            } catch (IOException e) {
    System.out.println("== read conf.properties is error ="+e.getMessage());
            }
        }
    /** 取得配置属性 */
    public static String getProperty(String key) {
    return properties.getProperty(key);
    } /** 取得配置属性(无此属性,返回默认值) */
    public static String getProperty(String key, String defaultValue) {
    return properties.getProperty(key, defaultValue);
    }    public static void main(String[] args){
                    System.out.println(Config.getProperty("type"))
        
         }
    }