xml在打包成jar后就无法识别了, 可能是路径的问题, 求解
在eclipse中可以成功运行
package com.jazip.util.common;import java.io.File;import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import org.xml.sax.helpers.DefaultHandler;
public class XmlsUtil extends DefaultHandler{
private SAXReader saxReader = new SAXReader();
private Document document;
/**
* 构造函数
* @param path 从Constant获取路径
* @param xmlName xml名字, 带后缀
*/
public XmlsUtil(String moduleName, String xmlName) {
super();
loadCoreXml(moduleName, xmlName);
}
/**
* 以SAX装载XML
* @param path
* @param xmlName
*/
private void loadCoreXml(String moduleName, String xmlName) {
try {
String path = new StringBuffer("/resources/").append(("core".equals(moduleName)?moduleName:"module/"+moduleName)).append("/xmls/").toString()+xmlName;
File file = new File(Object.class.getResource(path).toURI());
document = saxReader.read(file);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 获取xml文件的根元素
* @return
*/
public Element getRootElement() {
return document.getRootElement();
}
}
在eclipse中可以成功运行
package com.jazip.util.common;import java.io.File;import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import org.xml.sax.helpers.DefaultHandler;
public class XmlsUtil extends DefaultHandler{
private SAXReader saxReader = new SAXReader();
private Document document;
/**
* 构造函数
* @param path 从Constant获取路径
* @param xmlName xml名字, 带后缀
*/
public XmlsUtil(String moduleName, String xmlName) {
super();
loadCoreXml(moduleName, xmlName);
}
/**
* 以SAX装载XML
* @param path
* @param xmlName
*/
private void loadCoreXml(String moduleName, String xmlName) {
try {
String path = new StringBuffer("/resources/").append(("core".equals(moduleName)?moduleName:"module/"+moduleName)).append("/xmls/").toString()+xmlName;
File file = new File(Object.class.getResource(path).toURI());
document = saxReader.read(file);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 获取xml文件的根元素
* @return
*/
public Element getRootElement() {
return document.getRootElement();
}
}
http://bbs.jazip.com/thread-175-1-1.html
不过还是谢谢上面的回答