Textfiles没有附带类文件 - 可执行jar

时间:2014-07-31 12:36:15

标签: java eclipse text-files executable-jar

今天我第一次遇到启动jar文件的问题。现在我知道(在解压缩jar之后)当我在Eclipse中导出和创建程序的jar包时,文本文件没有出现。

为什么文本文件不与类文件一起出现?我应该把它放在哪个项目中?

我将文本文件放在项目文件夹的根目录

慷慨解囊

编辑:可能我可以在cmd中手动完成,但我不知道应该在加载文本文件的程序代码中添加什么。例如,我应该是一个类加载器吗? 我知道如何在加载jpg org gif等图像时这样做。但是如果它是文本文件呢?

这是负责加载文本文件的方法

    private void read(String text_file, int len, int index) {

    String[] stringBuffer = new String[len]; 
    File file = new File(text_file);
    FileReader fileReader;
    BufferedReader bufferedReader ;
    try {
        fileReader = new FileReader(file);
        bufferedReader = new BufferedReader(fileReader);

        String line;
        int i = 0;
        while ( (line = bufferedReader.readLine()) != null) {
            stringBuffer[i] = line; 
            i++;
        }
        bufferedReader.close();

    } catch (FileNotFoundException fnde) {
        fnde.printStackTrace();
        JOptionPane.showMessageDialog(null, "files could not be found", "Help", 0);
    } catch (Exception e) {
        e.printStackTrace();
    }

    splitString(stringBuffer, index);   
}

2 个答案:

答案 0 :(得分:1)

我从你的代码中做了一个例子。文件text.txt位于META-INF下的源文件夹中。

package test;

import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.InputStreamReader;

import javax.swing.JOptionPane;

public class ReadFile {
    public static void main(String[] args) {
        ReadFile o = new ReadFile();
        o.read("test.txt", 2, 0);
    }
    private void read(String text_file, int len, int index) {

        BufferedReader bufferedReader ;
        String[] stringBuffer = new String[len]; 
        try {
            bufferedReader = new BufferedReader(new InputStreamReader(getClass().getResourceAsStream("/META-INF/".concat(text_file))));

            String line;
            int i = 0;
            while ( (line = bufferedReader.readLine()) != null) {
                stringBuffer[i] = line; 
                i++;
            }
            bufferedReader.close();

        } catch (FileNotFoundException fnde) {
            fnde.printStackTrace();
            JOptionPane.showMessageDialog(null, "files could not be found", "Help", 0);
        } catch (Exception e) {
            e.printStackTrace();
        }

        splitString(stringBuffer, index);   
    }

    private void splitString(String[] stringBuffer, int index) {
        for(String line: stringBuffer) {
            System.out.println(line);
        }

    }
}

希望这有帮助。

答案 1 :(得分:0)

仅在 - >下列出的文件夹/广告属性 - > Java构建路径 - >订单和出口将导出到JAR。将文件放在

的构建路径上的文件夹中
  • 将任何文件夹添加为源文件夹( - >属性 - > Java构建路径 - >源)
  • 或将文件放入标准 src 文件夹的子文件夹中。

项目的基础文件夹不是,应该/不能是导出的一部分。