2010-04-20 107 views
12

嗨,大家好菜鸟Java的问题。如何使用可执行文件夹包含文本文件

我有一个Java项目,我想包含一个文本文件与可执行jar。现在文本文件在默认包中。

InputFlatFile currentFile = new InputFlatFile(“src/theFile.txt”);

我使用该行抓取文件,如使用src所看到的。但是这对于可执行jar无效。

有人可以让我知道如何保持这个文件与可执行文件的jar,所以有人使用该程序可以只需单击一个图标并运行该程序。

谢谢!

+2

您可以使用getResourceAsStream(http://java.sun.com/javase/7/docs/api/java/lang/ClassLoader.html#getResourceAsStream%28java.lang.String%29)。有关其他问题,请参阅http://stackoverflow.com/questions/574809/java-load-a-resource-contained-in-a-jar。 – 2010-04-20 00:36:00

+0

谢谢,我会看看这个。 – Jake 2010-04-20 00:39:44

回答

5

jar文件中的基础目录位于类路径中。

尝试InputFlatFile currentFile = new InputFlatFile(“theFile.txt”);

您可能正在使用IDE,并且其中包含一个src文件夹,IDE用作包的基础。当您从IDE创建jar文件时,它会删除src文件夹,并且根文件夹中包含有软件包。

即蚀的src/com.blah.blah一旦jar文件被创建的结构变得com.blah.blah

当然我假定InputFlatFile被正确读取的值。

http://www.devdaily.com/blog/post/java/read-text-file-from-jar-file

+0

谢谢,那个链接帮我弄明白了! – Jake 2010-04-20 02:19:49

+0

希望它为我工作。我在jar文件的'root'中有两个文件,并且在securityProps.setProperty(“javax.net.ssl.trustStore”,“CDAtruststore.jks”)上出现错误;错误是'系统找不到指定的文件'但文件在jar里面的顶层。已经让我困惑了好几个小时。 – 2012-11-27 14:03:11

5

你想它的可执行的JAR? 然后读取您应该使用的文件

getClass().getResourceAsStream() 

读取文件。

将文本文件保存在要访问的包中。 类加载器会找到它。

还请记住JAR中的文件名区分大小写。

相关问题