分布式jar文件没有提取我的.txt文件

时间:2013-03-29 13:10:42

标签: java jar bufferedreader

我正在使用OS X,Netbeans 7.3 Beta 2,Java。

我有一个从文本文件中读取的程序。运行我的分布式jar时,我的程序不使用此.txt文件。

以下是我的两个软件包 - 除了SPPMainGUI2.java之外,忽略com.john.view中的所有java文件:

Ignore all

如您所见,cpass.txt位于com.john.spp中。以下是我如何使用它:

BufferedReader in = null;
    try {
        in = new BufferedReader(new FileReader("cpass.txt"));
    } catch (FileNotFoundException ex) {
        Logger.getLogger(SPPMainGUI2.class.getName()).log(Level.SEVERE, null, ex);
    }

我猜我的FileReader位置需要改变。当我的程序从Netbeans运行时,它工作正常,当我运行在我的dist文件夹中找到的jar文件时,它不会获取.txt文件。

有什么想法吗?

2 个答案:

答案 0 :(得分:2)

使用资源访问机制,而不是像new FileReader("cpass.txt")那样读取文件:

    in = new BufferedReader(new InputStreamReader(
                   getClass().getResourceAsStream("cpass.txt")));

答案 1 :(得分:2)

你在哪个班级读文件? 是SPPMainGUI2吗?

然后,您需要将getClass()更改为Main.classcom.john.spp包中的其他类。