Spring Framework/๐Ÿ“› ์—๋Ÿฌ ๊ธฐ๋ก

[๐Ÿ“› Error] jar ํŒŒ์ผ๋กœ ๋ฐฐํฌ ์‹œ java.io.FileNotFoundException

soogoori 2023. 11. 2. 23:23

 

๋ฐฐํฌ ์ „์—๋Š” ๊ทธ๋ƒฅ ๋กœ์ปฌ ๊ฒฝ๋กœ ์ฝ์–ด์„œ 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://homoefficio.github.io/2020/07/21/IDE-%EC%97%90%EC%84%9C%EB%8A%94-%EB%90%98%EB%8A%94%EB%8D%B0-jar-%EC%97%90%EC%84%9C%EB%8A%94-%EC%95%88-%EB%8F%BC%EC%9A%94-Java-Resource/

 

https://www.inflearn.com/questions/46489/file-not-found-%EC%A7%88%EB%AC%B8