我正在使用OS X,Netbeans 7.3 Beta 2,Java。
我有一个从文本文件中读取的程序。运行我的分布式jar时,我的程序不使用此.txt文件。
以下是我的两个软件包 - 除了SPPMainGUI2.java之外,忽略com.john.view中的所有java文件:
如您所见,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文件。
有什么想法吗?
答案 0 :(得分:2)
使用资源访问机制,而不是像new FileReader("cpass.txt")
那样读取文件:
in = new BufferedReader(new InputStreamReader(
getClass().getResourceAsStream("cpass.txt")));
答案 1 :(得分:2)
你在哪个班级读文件? 是SPPMainGUI2吗?
然后,您需要将getClass()
更改为Main.class
或com.john.spp
包中的其他类。