getAbsolutePath()无法处理Jar文件

时间:2016-05-17 11:55:11

标签: java jar

所以我正在尝试使用GUI java,每当我尝试在终端中运行我的代码时这个代码都能正常工作,但是我需要创建一个可以从任何目录加载文本文件的jar文件(遗憾的是这个代码只有适用于文件 在我的主目录中,如果我尝试访问不同文件夹中的文件,则返回文件异常)真的很感激响应。我不知道如果这很重要,但我正在实现一个可序列化的界面。

public boolean loadCanvas(String filename){
        boolean done = true;
        try{
            File file = new File(filename);
            FileInputStream fp = new FileInputStream(file.getAbsolutePath());
            ObjectInputStream i = new ObjectInputStream(fp);
            obj = (A) i.readObject();
            i.close();
        }
        catch(Exception eRef){
            done = false;
        }
        return done;    
    }

2 个答案:

答案 0 :(得分:1)

您根本不必致电getAbsolutePath()。 String变量文件名应包含您尝试访问的完整路径。您可以使用File对象或仅使用String,文件名(例如new FileInputStream(file)new FileInputStream(filename))来实例化FileInputStream。话虽如此,听起来你的问题是你的文件名变量中指定了一个不正确的文件路径,或者你遇到了权限限制。

答案 1 :(得分:0)

您可以尝试使用ClassLoader.getResourceAsStream()加载文件。也, 您是否检查了您尝试在主目录外访问的文件的权限?