[๐ Error] jar ํ์ผ๋ก ๋ฐฐํฌ ์ java.io.FileNotFoundException
๋ฐฐํฌ ์ ์๋ ๊ทธ๋ฅ ๋ก์ปฌ ๊ฒฝ๋ก ์ฝ์ด์ csv ํ์ผ์ ์๋ ๋ด์ฉ์ ๊ฐ์ ธ์ค๋๋ก ํ๊ณ , ๊ฒฐ๊ณผ๋ ์ ๋์๋ค.
๋ฐฐํฌํ ๋๋ resources์ csv ํ์ผ ๋ฃ๊ณ ๋ด๋ถ ๋ฆฌ์์ค ์ฝ์ด์ ๋ ์ค ์์๊ฑด๋ง.. ์ฝ๊ฒ ๋์ง ์์๋ค.
๊ฒ์ํด๋ณด๋ JAR๋ก ํจํค์งํด์ ์คํ์ํค๋ฉด InputStream์ ์จ์ ์ฝ์ด์์ผ๋๋ค๊ณ ํ๋ค.
JAR ์์ ๋ค์ด์๋ ๋ฆฌ์์ค๋ฅผ classpath๋ก ์ ๊ทผํด์ ์ฝ์ ๋๋ ํ์ผ์์คํ ์ ์๋ ํ์ผ์ ์ฝ์ด์ค๋ ๊ฒ์ด ์๋๋ผ JAR ์์ ์๋ ํ์ผ์ด๋ฏ๋ก getFile()๋ก ์ฝ์ ์ ์๋ค๊ณ ํ๋ค.
์์ ํ๊ธฐ ์ ์ฝ๋
try (BufferedReader br = new BufferedReader(new FileReader(filePath))) {
String line;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
}
try (Reader reader = Files.newBufferedReader(Paths.get(filePath),StandardCharsets.UTF_8);
CSVParser csvParser = new CSVParser(reader, CSVFormat.DEFAULT)) {
for (CSVRecord record : csvParser) {
if (record.size() >= 2) {
/*log.info("๋ ์ฝ๋ 0๋ฒ์ ๋ญ์๋ " + record.get(0));
log.info("์ด๋ฆ "+ name.length());*/
String getRecord = record.get(0);
//log.info("์ด๋ฆ "+ getRecord.length());
if (name.equals(getRecord)) {
//log.info("์ด๋ฆ๊ฐ์ "+ name);
String[] contentArray = record.get(1).split("\\n");
//log.info("๋ ์ฝ๋ 1๋ฒ์ ๋ญ์๋ " + record.get(1));
aiReview = Arrays.asList(contentArray);
shoesName = name;
//log.info("์ ๋ฐ์ด๋ฆ" + shoesName);
break; // ์ฐพ์์ผ๋ฉด ๋ฐ๋ณต ์ค๋จ
}
}
}
} catch (IOException e) {
// ํ์ผ ์ฝ๊ธฐ ์์ธ ์ฒ๋ฆฌ
log.error("ํ์ผ ์ฝ๊ธฐ ์ค ์ค๋ฅ ๋ฐ์: " + e.getMessage());
throw e;
}
์์ ํ ํ ์ฝ๋
InputStream์ ์ฌ์ฉํด์ csv ํ์ผ์ ์๋ ๋ด์ฉ๋ค์ ์ฝ์ด์จ๋ค.
classpath์ ์๋ ํ์ผ์ ๊ฐ์ ธ์ค๊ธฐ ์ํ ๋ฉ์๋์ธ getResourceAsStream์ ์ฌ์ฉํด์ ํ์ผ์ ์ ๊ทผํ๋ค.
์ฐธ๊ณ
https://www.inflearn.com/questions/46489/file-not-found-%EC%A7%88%EB%AC%B8