Java 如何在Jar中加载与其所加载的类无关的文件

Java 如何在Jar中加载与其所加载的类无关的文件,java,file,jar,loading,Java,File,Jar,Loading,我正在尝试加载jar文件中的文件。我尝试将文件加载到BufferedReader中。例如: BufferedReader br = new BufferedReader(new FileReader(fileName)); 其中fileName是Jar文件根中的字符串:类似于“resources/text.txt” 我很难找到实现这一目标的方法。显然,FileReader无法工作,因为它从文件系统读取 有人能帮我吗?使用类加载器获取 请注意,您需要为内容指定正确的字符编码。使用类加载器获取 请

我正在尝试加载jar文件中的文件。我尝试将文件加载到BufferedReader中。例如:

BufferedReader br = new BufferedReader(new FileReader(fileName));
其中fileName是Jar文件根中的字符串:类似于“resources/text.txt”

我很难找到实现这一目标的方法。显然,FileReader无法工作,因为它从文件系统读取


有人能帮我吗?

使用类加载器获取


请注意,您需要为内容指定正确的字符编码。

使用类加载器获取


请注意,您需要为内容指定正确的字符编码。

使用类加载器获取


请注意,您需要为内容指定正确的字符编码。

使用类加载器获取


请注意,您需要为内容指定正确的字符编码。

如果您试图访问与正在运行的程序相同的jar中的文件,则应使用该文件

final InputStream inputStream = ClassName.class.getResourceAsStream(fileName);

如果您试图访问与正在运行的程序位于同一个jar中的文件,则应使用

final InputStream inputStream = ClassName.class.getResourceAsStream(fileName);

如果您试图访问与正在运行的程序位于同一个jar中的文件,则应使用

final InputStream inputStream = ClassName.class.getResourceAsStream(fileName);

如果您试图访问与正在运行的程序位于同一个jar中的文件,则应使用

final InputStream inputStream = ClassName.class.getResourceAsStream(fileName);


除非有从这个jar文件加载的类,否则我能看到的唯一方法就是将它当作存档。在这篇文章中有一个关于如何做的答案。在你的类路径中有问题的jar吗?或者它只是文件系统中的某个文件?除非有从这个jar文件加载的类,否则我能看到的唯一方法就是将其视为归档文件。在这篇文章中有一个关于如何做的答案。在你的类路径中有问题的jar吗?或者它只是文件系统中的某个文件?除非有从这个jar文件加载的类,否则我能看到的唯一方法就是将其视为归档文件。在这篇文章中有一个关于如何做的答案。在你的类路径中有问题的jar吗?或者它只是文件系统中的某个文件?除非有从这个jar文件加载的类,否则我能看到的唯一方法就是将其视为归档文件。在这篇文章中有一个关于如何做的答案。在你的类路径中有问题的jar吗?或者它只是文件系统中的某个文件?Jar与它从中加载的类无关-OPPerhaps需要澄清。我读这篇文章是为了表明文件与正在读取的类不在同一个jar中,而不是资源不在类路径上。我的英语受此影响。该文件确实在Jar文件中,但与类(在Jar文件中较深的某个包中)不相关。我读这篇文章是为了表明文件与正在读取的类不在同一个jar中,而不是资源不在类路径上。我的英语受此影响。该文件确实在Jar文件中,但与类(在Jar文件中较深的某个包中)不相关。我读这篇文章是为了表明文件与正在读取的类不在同一个jar中,而不是资源不在类路径上。我的英语受此影响。该文件确实在Jar文件中,但与类(在Jar文件中较深的某个包中)不相关。我读这篇文章是为了表明文件与正在读取的类不在同一个jar中,而不是资源不在类路径上。我的英语受此影响。该文件确实在Jar文件中,但与类(在Jar文件中较深的某个包中)不相关。尝试了此方法对我无效tho:(引发了NullPointerException。感谢您的努力tho。这可能是因为您没有使用“utf-8”Brett Okken建议在类上缩放getResourceAsStream将只查找与所用类的包相关的资源的参数。尝试了此方法但对我无效tho:(引发了NullPointerException。感谢您的努力tho。这可能是因为您没有使用“utf-8”Brett Okken建议在类上缩放getResourceAsStream将只查找与所用类的包相关的资源的参数。尝试了此方法但对我无效tho:(引发了NullPointerException。感谢您的努力tho。这可能是因为您没有使用“utf-8”Brett Okken建议在类上缩放getResourceAsStream将只查找与所用类的包相关的资源的参数。尝试了此方法但对我无效tho:(引发了NullPointerException。感谢您的努力tho。这可能是因为您没有使用“utf-8”参数,Brett Okken建议在类上缩放getResourceAsStream将只查找与所用类的包相关的资源。