Include text file in Eclipse JAR export?
我正在使用 FileInputStream 来读取 File 对象。我的程序在 Eclipse IDE 中运行时能够读取文本文件,但在作为 JAR 文件运行时不能。
我将其导出为 JAR file 而不是 Runnable JAR file,并且我知道该文本文件已包含在 JAR 文件中,因为我将其提取出来进行检查。
这是我的文件结构的样子:
- 您如何尝试访问您的文件?如果您尝试从文件系统中读取它,它将不会在 jar 中找到它。这个答案可能会有所帮助
-
我在我的一个源文件中以这样的流访问我的文件:new FileInputStream(new File("./learnaboutfonts.txt")
我建议你把你的 learnaboutfonts.txt 放在 src 文件夹中(不是在包中),并在源代码中读取文件,如下所示:
你可以使用 br 作为你想要使用的。快乐编码。
-
不要忘记在构建路径中添加 spring-context jar (spring-context-3.2.0.RELEASE.jar)。
你应该使用类似的东西:
1
| InputStream input = getClass (). getResourceAsStream("/learnaboutfonts.txt"); |
请注意,诀窍是正确使用前导"/"。如果您不放置前导 /,那么它会在其调用的类的包中搜索文件。
-
可能是个好主意。但是,它为 input 分配了一个空值,是否有任何可能的原因?
-
要使上述代码正常工作,文件 learnaboutfonts 应该位于 jar 的根目录中。是吗?
-
你的答案是正确的。实际上,文本文件应该在源文件夹中,而不是根文件夹中,我很抱歉。 1 :)
您如何访问您的文件?您可能需要一个相对文件路径,例如"./mytext.txt")。
使用这个模式:
1 2
| InputStream is = new getClass (). getResourceAsStream(
"/text.txt"); |
测试以将您的文本文件包含在您要访问该文件的类的包中。
- 这不起作用。我得到 is 的空值。
-
为此使用 "new Object()" 并不好笑。
-
我从静态上下文中复制了它。是的,最好直接使用 getClass() :)。