所以在Eclipse中,这段代码可以运行:
String file_path = "accounts.accs";
File file = new File("src/puffinlump/folder_lock/"+file_path);
但是当我把它编译成JAR时,我得到了这个错误:
Error reading file: java.io.FileNotFoundException: lock\src\puffinlump\folder_lock\accounts.accs (The system cannot find the path specified)
为什么它不起作用,我该如何解决?
答案 0 :(得分:2)
正如Obicere所说,工作目录是项目目录。您尝试访问src
文件夹中的某些内容,该文件夹可能在您导出JAR的任何位置都不存在。您应该在项目目录中创建一个名为folder_lock
的文件夹,其中包含accounts.accs
,然后获取您的文件:
File file = new File("folder_lock" + File.separator + "accounts.accs");
如果您在JAR中需要它(它被导出,因为它在src
文件夹中),然后从中检索InputStream
,如下所示:
InputStream stream = getClass().getClassLoader().getResourceAsStream("puffinlump/folder_lock/accounts.accs");
如果您的方法是静态的,请使用
InputStream stream = MyClass.class.getClassLoader().getResourceAsStream("puffinlump/folder_lock/accounts.accs");
而是将您的班级名称替换为MyClass
。
如果您需要网址,则可以使用getResource
而不是getResourceAsStream
检索网址。
请注意,您的代码必须编译为运行 - Eclipse每次保存时都会默认编译它。