解決:class path resource[]cannot be resolved to absolute file path
エラーメッセージ
java.io.FileNotFoundException: class path resource [template/inuModel.inu] cannot be resolved to absolute file path because it does not reside in the file system: jar:file:/usr/local/jar/dmb-core.jar!/BOOT-INF/classes!/template/inuModel.inu
エラーコード
// inu
Resource resource = new ClassPathResource("template/inuModel.inu");
File inuModel = resource.getFile();
エラー原因
ClassPathResource
でresourcesディレクトリのテンプレートファイルを取得すると、resource.getFile()
に直接取得され、エラーが発生します.なぜなら、プロジェクトがjarの形式に構築された後、resourcesディレクトリのファイルは直接システムに存在するのではなく、jarファイルにネストされているからです.
解決策
resource.getInputStream()
の方法を使用して、ファイルのInputStream
を取得する.次に、org.apache.commons.io.FileUtils
のcopyToFile()
メソッドまたはcopyInputStreamToFile()
メソッドを使用して、ストリームをコピーするターゲットファイル// inu
Resource resource = new ClassPathResource("template/inuModel.inu");
File inuModel = new File(filePath);
FileUtils.copyToFile(resource.getInputStream(), inuModel);