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