访问打包到jar文件中的文件
我创建了一个带有可运行编译类和一些模板文件(文本)的jar文件。 我现在想要使用打包到jar中的文本文件在应用程序中作为File
对象进行分发。
我试图使用不起作用的相对路径。 如何获取指向jar中文本文件的File
对象?
有没有办法做到这一点所以它既可以在运行解压缩的类文件时运行,也可以从具有相同代码的jar运行,或者我是否需要使用单独的函数?
从jar里面你可以像Class.getResourceAsStream(String)
或类似的东西一样使用它。
从外面它不是文件的jar,所以你必须提取它,以实际使用内部文件
如果您在应用程序中使用JAR,那么Class.getResourceAsStream(String)
将执行。
或者,如果您正在使用Servlet,那么ServletContext.getResourceAsStream(String)
也会这样做。
这两个方法返回一个InputStream
(属性资源数据),而不是你想要的File
对象。