Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从WAR文件获取文件_Java_Url_Path_Classloader_War - Fatal编程技术网

Java 从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

我正试图从我的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
,但我无法用该路径打开它

关于如何访问该文件,有什么想法吗

错误:

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?我现在已经包括在内了