以下代码在我的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类吗?甚至不是演员?
谢谢
答案 0 :(得分:2)
zip文件的条目(即jar文件是什么)不是文件系统中存在的文件。因此,您无法使用表示文件系统路径的文件来引用zip条目。并且您无法使用文件IO来阅读其内容,因为它不是文件。
我不知道你想做什么,但是如果你想阅读jar资源的内容,只需使用ImageLab.class.getResourceAsStream()
来获取一个InputStream,从条目中读取。