Java 为什么xml文件不能与可执行文件le jar一起使用
我的eclipse项目中有server.XML文件,从eclipse执行时,该文件运行良好 但是,当我使用打包所有文件选项创建可执行jar时,它无法访问该XML文件,即使它存在于jar中的资源文件夹中 为什么会这样? 怎么做 我通过以下方式访问XML文件:Java 为什么xml文件不能与可执行文件le jar一起使用,java,eclipse,executable-jar,Java,Eclipse,Executable Jar,我的eclipse项目中有server.XML文件,从eclipse执行时,该文件运行良好 但是,当我使用打包所有文件选项创建可执行jar时,它无法访问该XML文件,即使它存在于jar中的资源文件夹中 为什么会这样? 怎么做 我通过以下方式访问XML文件: private void initializeDocument() { try { docBuilderFactory = DocumentBuilderFactory.newInstance();
private void initializeDocument()
{
try {
docBuilderFactory = DocumentBuilderFactory.newInstance();
docBuilder = docBuilderFactory.newDocumentBuilder();
/*
URL xmlResource = getClass().getResource("/server.xml");
File xmlFile = new File(xmlResource.getPath());
*/
//
document = docBuilder.parse (new File("ServerResources/server.xml"));
} catch (ParserConfigurationException e) {
e.printStackTrace();
} catch (SAXException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
您的问题是这一行:
File xmlFile = new File(xmlResource.getPath());
JAR中的资源不是文件
相反,您必须使用
getClass().getResourceAsStream()
ans将DocumentBuilder
用于该流。您的问题是这一行:
File xmlFile = new File(xmlResource.getPath());
JAR中的资源不是文件
相反,您必须使用
getClass().getResourceAsStream()
ans将DocumentBuilder
用于该流。试试这段代码
让我知道它是否有效
String fileURI = this.getClass().getProtectionDomain().getCodeSource().getLocation().getPath();
fileURI = fileURI.substring(0, fileURI.length()-4);
fileURI = fileURI+"ServerResources/server.xml";
String actualFileURI= URLDecoder.decode(fileURI);
document = docBuilder.parse (new File(actualFileURI));
请尝试这段代码 让我知道它是否有效
String fileURI = this.getClass().getProtectionDomain().getCodeSource().getLocation().getPath();
fileURI = fileURI.substring(0, fileURI.length()-4);
fileURI = fileURI+"ServerResources/server.xml";
String actualFileURI= URLDecoder.decode(fileURI);
document = docBuilder.parse (new File(actualFileURI));
您需要使用“getResourceAsStream”或类似工具将资源作为资源而不是文件打开。是否要将server.xml打包到jar文件中?您需要使用“getResourceAsStream”或类似工具将资源作为资源而不是文件打开。是否要将server.xml打包到jar文件中?要从你的罐子里取吗?