代码中:
String ipFilePath = this.getClass().getResource("/qqwry.dat").getFile();
在未打包前是正常的,打成jar包后,运行,报FileNotFoundException,即文件找不到的异常。
经查证,需要使用:
InputStream in = this.getClass().getClassLoader().getResourceAsStream("qqwry.dat");
才能获取文件流。
但是现有功能要求只能获取到文件File类,所以采取生成临时文件方式,解决方法如下:
InputStream in = this.getClass().getClassLoader().getResourceAsStream("qqwry.dat");
File f = new File(FileUtils.getTempDirectoryPath()+"/qqwry.dat");
FileOutputStream out = new FileOutputStream(f);
IOUtils.copy(in, out);