Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/388.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 关于从jar中读取文件的查询_Java_Jar_Classpath_Classloader - Fatal编程技术网

Java 关于从jar中读取文件的查询

Java 关于从jar中读取文件的查询,java,jar,classpath,classloader,Java,Jar,Classpath,Classloader,我正在开发一个spring引导应用程序,它将被其他用户应用程序用作不可执行的jar。spring引导应用程序(jar)读取resources文件夹中的xsd文件。当我们把它作为一个独立的应用程序运行时,它执行得很好 从resources文件夹读取xsd文件的代码- File xsdValue=new ClassPathResource(“xsd/”+xsdFileName+“.xsd”).getFile(); 但问题是,当用户应用程序调用jar时,它会尝试在自己的resources文件夹而不是

我正在开发一个spring引导应用程序,它将被其他用户应用程序用作不可执行的jar。spring引导应用程序(jar)读取resources文件夹中的xsd文件。当我们把它作为一个独立的应用程序运行时,它执行得很好

从resources文件夹读取xsd文件的代码-

File xsdValue=new ClassPathResource(“xsd/”+xsdFileName+“.xsd”).getFile();
但问题是,当用户应用程序调用jar时,它会尝试在自己的resources文件夹而不是jar的resources文件夹中查找xsd

请告知


非常感谢您的帮助。

jar文件中的资源不能作为文件类获取,请使用ClassLoader类的getResourceAsStream方法。

jar文件中的资源不能作为文件类获取,改用类加载器类的getResourceAsStream方法。

使用路径或标准java类加载器的InputStream。并使用唯一路径<代码>Xyz.class.getResource(“xsd/Xyz/”+…)谢谢Joop Eggen。。你的解决方案让我走上了正确的方向,最终我找到了解决问题的方法。使用带有标准java类加载器的路径或InputStream。并使用唯一路径<代码>Xyz.class.getResource(“xsd/Xyz/”+…)谢谢Joop Eggen。。您的解决方案将我推向了正确的方向,最终我找到了问题的解决方案..正如建议的那样,我使用getResourceAsStream,它工作得非常出色..感谢Alexander lvanov提供了急需的见解和建议。正如建议的那样,我使用了getResourceAsStream,它工作起来很有魅力。感谢Alexander lvanov提供了急需的见解和建议。