eclipse使用可以引用的txt文件创建jar文件

时间:2013-07-03 06:52:00

标签: java eclipse jar readfile

我在eclipse中有一个项目

foo_project
 - src
  - bar_package
       bam.java
       info.txt
  - info.txt
 - resources
  - info.txt

在bam.java中,比方说,我打印出info.txt的内容,如

    try {
        welcome = new BufferedReader(new FileReader("src/info.txt"));
        String currentLine = null;
        while ( (currentLine = welcome.readLine()) != null) {
            System.out.println(currentLine);
        }
        welcome.close();

    } catch (Exception fof) {
        System.err.println(fof.toString());
    } 

当我将info.txt放在src文件夹下时,它在eclipse中工作,但是,一旦我将此项目导出到JAR文件,它就无法工作。

在代码中,我只尝试了“info.txt”以及“src / info.txt”,它们都没有工作!正如你所看到的,我把info.txt放在各处都不成功!

如何在Java代码中引用此info.txt,并让Java在eclipse和JAR文件中找到它?

5 个答案:

答案 0 :(得分:1)

如果info.txt中的文字始终相同,而不是将文本视为文件,请考虑将其视为“资源”。如果这样做,您可以将其包含在JAR中,而不必将其作为单独的文件分发。

使用Class.getResourceAsStream()方法打开资源InputStream

答案 1 :(得分:0)

我认为从Jar文件加载文件,文件阅读器方法无效,你必须使用class.getResource()或class.getResourceAsStream()方法

一些有用的链接,

Load a resource contained in a jar

How to load resource from jar file packaged in a war file? Load resource from class's own JAR file

另外其他人建议确保Jar文件包含您要查找的txt文件,您可以使用“jar”命令或winRAR

答案 2 :(得分:0)

要访问JAR文件中的资源,您需要使用

YourClass.getClassLoader().getResourceAsStream("info.txt")

这样,它将查看文件内部的JAR文件(或者更确切地说,在类路径的所有位置)作为资源。它可以在Eclipse和包装为JAR时使用。

答案 3 :(得分:0)

我最终在课堂上使用

getClass()。getResourceAsStream(“/ info.txt”),它给出了一个InputStream

然后我使用InputStreamReader和BufferedReader来读出文件。

/这是src文件夹。此文件夹下的所有内容都将构建到bin文件夹的末尾。

如果您有多个源文件夹(可以通过右键单击并在Eclipse中选择该选项将文件夹设置为源文件夹),则为单个bin文件夹构建所有源文件夹

例如, 如果你有源文件夹

sourceA
  foo_package/...
sourceB
  bar_package/...

然后在bin中,它将是

bin (this is the "/")
  foo_package/... 
  bar_package/...

感谢所有人的答案和灵感!

答案 4 :(得分:-1)

你必须将你的txt文件放在jar文件夹的jar文件旁边

这意味着将您的txt文件复制到jar文件夹中而不是复制到jar文件