在运行时,src / main / resources目录中有更新我的交换机配置的二进制文件。当我在eclipse中使用调试模式尝试它时文件存在且没有问题,但是当我为实际应用程序创建可执行jar文件时,该文件不存在。
问题出在哪里?
String filePath = new File("/resources/firmwares/myConfigFile.bin").getAbsolutePath();
File f = new File(filePath);
if (f.exists())
upload();
答案 0 :(得分:0)
假设您正在使用Maven
,并且您添加了资源插件,因此在maven构建期间,它会将您的资源复制到目标目录,然后在打包期间它也将打包它们
创建JAR后,您需要使用其他方法来访问您的文件,因为现在您的文件已打包在JAR文件中
要访问位于JAR文件内的文件,请使用:
InputStream is = this.getClass().getClassLoader().getResourceAsStream("firmwares/myConfigFile.bin");
或者
URL url = this.getClass().getClassLoader().findResource("firmwares/myConfigFile.bin");