读取文件时出现null null异常

时间:2017-02-25 12:03:07

标签: java file jar

以下代码在我的Eclipse IDE上运行良好。

private void getLayersAndDisplay() throws Exception {
        URL imageURL = ImageLab.class.getResource("earthlights.jpg");
        File imageFile = new File(imageURL.toURI());
        URL shapeFileURL = ImageLab.class.getResource("countries.shp");
        File shapeFile = new File(shapeFileURL.toURI());
        URL shapeFileURL2 = ImageLab.class.getResource("Brasil.shp");
        File shapeFile2 = new File(shapeFileURL2.toURI());
        displayLayers(imageFile, shapeFile,shapeFile2);
    }

但是,在编译jar时,它会给我一个空指针异常。我认为,因为我将它作为class.getResource,它会工作。我不能在jar中使用File类吗?甚至不是演员?

谢谢

1 个答案:

答案 0 :(得分:2)

zip文件的条目(即jar文件是什么)不是文件系统中存在的文件。因此,您无法使用表示文件系统路径的文件来引用zip条目。并且您无法使用文件IO来阅读其内容,因为它不是文件。

我不知道你想做什么,但是如果你想阅读jar资源的内容,只需使用ImageLab.class.getResourceAsStream()来获取一个InputStream,从条目中读取。