Java 从WAR文件获取文件
我正试图从我的WAR文件中获取一个文件Java 从WAR文件获取文件,java,url,path,classloader,war,Java,Url,Path,Classloader,War,我正试图从我的WAR文件中获取一个文件 URL url2 = getClass().getClassLoader().getResource("/package.xsd"); 当我打印getPath()时,这是输出: /C:/workspacesFresh2/.metadata/.plugins/org.eclipse.wst.core/tmp1/wtpwebapps/GServer/WEB-INF/lib/GLibrary.jar/package.xsd 因此,它找到了package.xsd
URL url2 = getClass().getClassLoader().getResource("/package.xsd");
当我打印getPath()
时,这是输出:
/C:/workspacesFresh2/.metadata/.plugins/org.eclipse.wst.core/tmp1/wtpwebapps/GServer/WEB-INF/lib/GLibrary.jar/package.xsd
因此,它找到了package.xsd
,但我无法用该路径打开它
关于如何访问该文件,有什么想法吗
错误:
org.xml.sax.SAXParseException;schema_reference.4:未能读取架构文档文件:/C:/workspacesFresh2/.metadata/.plugins/org.eclipse.server.core/tmp1/wtpwebapps/server/WEB-INF/lib/GLibrary.jar/package.xsd',因为1)找不到文档;2) 文件无法读取;3) 文档的根元素不是。
谢谢你不能用它的路径打开它,因为它不是一个普通的文件,它是一个罐子里的文件 访问它的一种方法是使用输入流
InputStream stream = this.getClass().
getClassLoader().getResourceAsStream("/package.xsd");
您可以从输入流中读取URL的“路径”部分不一定与文件系统中的路径相同。实际上,您的URL不是一个文件URL,因为它指向一个JAR文件。无法获取路径并在文件系统中查找它
InputStream stream = this.getClass().
getClassLoader().getResourceAsStream("/package.xsd");
如果要在应用程序中访问它,必须使用streams
另请参见:您能定义“无法打开”吗?有错误吗?StackTrace?我现在已经包括在内了