14

我想在java中构建一个可运行的jar。我需要在 jar 中包含一些文件,以便在执行 jar 时自动从 java 类中读取文件。因此,我在项目中创建了一个文件夹,并从项目中引用了这些文件。我按照一些教程创建了 jar 文件,但我无法将这些外部文件包含在我的 jar 文件中。请让我谈谈使用外部文件创建可运行的 jar。

我的文件结构是

Test
|
|
-------src
|        |
|        default package
|                      |
|                      |
|                      test1.java
|
 -------FileFOlder
|              |
|              | 
|              abc.txt

我在test1.java类中访问abc.txt 。我的代码是,

public class test1 {


public static void main(String[] args) throws IOException {


    char [] read = new char[20];
    String path = new File(".").getCanonicalPath();
    path = path+"\\Newfolder\\abc.txt";
    System.out.println(path);
    File nF = new File(path);
    FileReader fR = new FileReader(nF);
    fR.read(read);
    for(char c : read){
        System.out.print(c);
    }
    fR.close();
    System.out.println(" Hi..This is test program ");
}

}

当我使用 eclipse 导出选项创建可执行 jar 时,我无法在 jar 中看到 FileFolder 目录。请给我一些关于这方面的信息。

4

2 回答 2

14

这是你应该做的:

将该文件放回您jar 文件中。用于class.getResourceAsStream()阅读它而不是Fileand FileReader。下面是如何做到这一点的解释:How to really read text file from classpath in Java

于 2013-08-06T21:45:07.953 回答
14

问题解决了!

方法如下:

1)右键单击您的项目文件夹并创建一个新文件夹。

2)将您想要打包到jar中的所有文件移动到该文件夹​​中。

3)单击project -> properties -> Build Path -> Source -> Add Folder并选择您刚刚创建的文件夹。

4) 创建你的 JAR!

由于您已经在其中创建了包含 abc.txt 的文件夹,因此您可以跳过步骤 1 和 2

编辑:确保 JAR 包含这些文件的一种方法是使用 7zip。

于 2013-08-06T23:07:22.197 回答