[How To] classNotFoundException ์˜ค๋ฅ˜ ํ•ด๊ฒฐ

Updated:

  • classNotFoundException ์˜ค๋ฅ˜

    ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๋™ ์‹ค์Šต์„ ํ•˜๋˜ ๋„์ค‘ classNotFoundException ์˜ค๋ฅ˜๊ฐ€ ์ƒ๊ฒผ๋‹ค.

    ๊ทธ๋Ÿฐ๋ฐ ์ด ์˜ค๋ฅ˜๊ฐ€ ์ƒ๊ฒผ์ง€๋งŒ ?

    ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๋™ ํ›„ ์ถœ๋ ฅ๊นŒ์ง€ ๋‹ค ๋๋‹ค.


    ๊ต‰์žฅํžˆ ๊ต‰์žฅํžˆ ์ฐ์ฐํ•œ ์ƒํ™ฉ์ด๋‹ค..

    ์—๋Ÿฌ๋Š” ๋‚˜์˜ค๋Š”๋ฐ ์‹คํ–‰์€ ๋˜ ์ž˜๋œ๋‹ค..

    ํ•˜์ง€๋งŒ ๋ถ€๋ถ„์ ์œผ๋กœ ์‹คํ–‰์ด ์•ˆ๋˜๋Š” ๊ณณ์ด ์žˆ์—ˆ๋‹ค.


    try { /* ๋“œ๋ผ์ด๋ฒ„๋ฅผ ์ฐพ๋Š” ๊ณผ์ • */
    			 Class.forName("com.mysql.cj.jdbc.Driver");
    			System.out.println("๋“œ๋ผ์ด๋ฒ„ ๋กœ๋“œ ์„ฑ๊ณต");
    		} catch (ClassNotFoundException e) {
    			e.printStackTrace();
    		}
    

    ์—ฐ๋™ ์ฝ”๋“œ ์ผ๋ถ€๋ถ„์ด๋‹ค.

    ์œ„์— ์‹คํ–‰ ๊ฒฐ๊ณผ๋ฅผ ๋ณด๋ฉด ์•Œ๊ฒ ์ง€๋งŒ โ€œ๋“œ๋ผ์ด๋ฒ„ ๋กœ๋“œ ์„ฑ๊ณตโ€ ์ถœ๋ ฅ์ด ๋˜์ง€ ์•Š์•˜๋‹ค.

    ๊ทธ๋ž˜์„œ ์—ด์‹ฌํžˆ ๊ตฌ๊ธ€ ๊ฒ€์ƒ‰์„ ํ•ด๋ณธ ๊ฒฐ๊ณผ ์ผ๋‹จ Class.forName์— ์—๋Ÿฌ๊ฐ€ ๋งŽ๋‹ค๊ณ  ํ•œ๋‹ค.

    ์ฐธ์กฐํ•ด์•ผ ํ•  jar ํŒŒ์ผ์ด ์—†๋Š”๊ฒฝ์šฐ ์ƒ๊ธด๋‹ค๊ณ  ํ•˜๋Š”๋ฐ ๋‚˜๋Š” ์ปค๋„ฅํ„ฐ ๊นŒ์ง€ ์ „๋ถ€ ์—ฐ๊ฒฐ ๋˜์–ด์žˆ์—ˆ๋‹ค.

    ๊ทธ๋ ‡๊ฒŒ ๊ณ„์† ๊ฒ€์ƒ‰์„ ํ•˜๋˜์ค‘ ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค๊ณผ ๋‚˜์˜ Class.forName ์•ˆ์— ์ธ์ž๊ฐ€ ์กฐ๊ธˆ ๋‹ค๋ฅธ๊ฒŒ ๋ณด์˜€๋‹ค.


    try { /* ๋“œ๋ผ์ด๋ฒ„๋ฅผ ์ฐพ๋Š” ๊ณผ์ • */
    			 Class.forName("com.mysql.jdbc.Driver");
    			System.out.println("๋“œ๋ผ์ด๋ฒ„ ๋กœ๋“œ ์„ฑ๊ณต");
    		} catch (ClassNotFoundException e) {
    			e.printStackTrace();
    		}
    

    ๋ฌด์—‡์ด ๋ฐ”๋€Œ์—ˆ๋Š”์ง€ ์•Œ๊ฒ ๋Š”๊ฐ€ ?!?!

    โ€œcom.mysql.cj.jdbc.Driverโ€ ์—์„œ โ€œcom.mysql.jdbc.Driverโ€ ๋กœ ๋ฐ”๋€Œ์—ˆ๋‹ค.

    .cj ๊ฐ€ ์‚ฌ๋ผ์ง„ ๊ฒƒ์ด๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์‹คํ–‰ ํ•ด ๋ณด๋‹ˆ ๋“œ๋ผ์ด๋ฒ„ ๋กœ๋“œ ์„ฑ๊ณต๋„ ์ถœ๋ ฅ๋˜๊ณ  ์•„์ฃผ ์ •์ƒ์ ์œผ๋กœ ์ž‘๋™ํ–ˆ๋‹ค.

  • ๊ฒฐ๋ก 

    ์•„์ง ์ด์œ ๋Š” ๋ชจ๋ฅธ๋‹ค.

    ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๋™ ์‹ค์Šต์„ ํ•˜๋˜ ๋„์ค‘ ๋‚ด๊ฐ€ ๊ณต๋ถ€ํ•˜๋Š” ์ฑ…์—์„œ ์ฃผ์–ด์ง„ ์ฝ”๋“œ๋ฅผ ๊ฐ€์ง€๊ณ  ๊ทธ๋Œ€๋กœ ์‹ค์Šต ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

    ์ผ๋‹จ ํ•ด๊ฒฐ์€ ํ–ˆ์œผ๋‹ˆ ์‹ค์Šต์€ ์ด์–ด๊ฐ€๊ฒ ์ง€๋งŒ

    ์–ผ๋ฅธ ์ด์œ ๋ฅผ ์•Œ์•„์„œ ์ฑ„์›Œ ๋„ฃ๊ฒ ๋‹ค !

  • ์ถ”๊ฐ€ 20.04.14

    ๋ฌด๋ ค 2์ฃผ๋งŒ์— ์ด์œ ๋ฅผ ์•Œ๊ฒŒ ๋˜์—ˆ๋‹ค.

    ์œˆ๋„์šฐ๋ฅผ ์‚ฌ์šฉ ์ค‘์ธ ๋ฐ์Šคํฌํƒ‘์—๋„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์„ ๊ตฌ์ถ•์„ ํ•ด๋†“์•˜๋‹ค.

    ๊ทธ๋Ÿฐ๋ฐ ์œ„ ์ฝ”๋“œ๋ฅผ ๋ฐ์Šคํฌํƒ‘์—์„œ ์‹คํ–‰ ํ•ด ๋ณธ ๊ฒฐ๊ณผ

    Class.forName(โ€œcom.mysql.cj.jdbc.Driverโ€); ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ์ง€ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์•˜๋‹ค.

    ๊ทธ๋ž˜์„œ ์ฒ˜์Œ์—” ๋‹จ์ˆœํžˆ OS ์ฐจ์ด์ธ์ค„ ์•Œ์•˜๋‹ค.

    ๋งฅ๋ถ์—์„  cj๋ฅผ ๋นผ์•ผ ์ •์ƒ์ ์œผ๋กœ ๋Œ์•„๊ฐ”์œผ๋‹ˆ๊นŒ !

    ๊ทธ๋Ÿฐ๋ฐ ์•„๋ฌด๋ฆฌ ์ƒ๊ฐํ•ด๋„ OS ์ฐจ์ด ๋•Œ๋ฌธ์— ๋ฐœ์ƒํ•œ ์˜ค๋ฅ˜๋ผ๋ฉด

    ์„œ๋กœ ๋‹ค๋ฅธ OS๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์‚ฌ๋žŒ ๋ผ๋ฆฌ ๊ฐ™์ด ๊ฐœ๋ฐœ์„ ํ•˜๋Š” ๊ฒฝ์šฐ ์ € ์ฝ”๋“œ๋ฅผ ์ผ์ผํžˆ ๋ฐ”๊ฟ”์ค˜์•ผ ํ•œ๋‹ค๋Š” ๋œป์ด ๋œ๋‹ค.

    ์ ˆ๋Œ€ ๋ง์ด ์•ˆ๋œ๋‹ค๊ณ  ์ƒ๊ฐํ•ด ๊ตฌ๊ธ€๋ง ํ•ด ๋ณธ ๊ฒฐ๊ณผ..

    ๊ต‰์žฅํžˆ ํ—ˆ๋ฌดํ–ˆ๋‹ค ๊ทธ๋ƒฅ JDBC ๋ฒ„์ „ ์ฐจ์ด์˜€๋‹ค.

    ์ฒ˜์Œ JDBC ์—ฐ๋™ ํ•  ๋•Œ๋„ ๊ตฌ๊ธ€๋ง์„ ํ†ตํ•ด ์—ฐ๋™ํ–ˆ๋Š”๋ฐ ์•„์ฃผ ์˜›๋‚  ๊ธ€์„ ๋ณด๊ณ  ํ–ˆ๋Š”๊ฐ€๋ณด๋‹ค..

    ๋งฅ์—๋Š” connector 5 ๋ฒ„์ „์ด ๊น”๋ ค์žˆ์—ˆ๋‹ค.. ์ง€๊ธˆ์€ 8 ๋ฒ„์ „์ธ๋ฐ ๋ง์ด๋‹ค !

    ๊ทธ๋ž˜์„œ 8 ๋ฒ„์ „์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œ ํ•ด์ฃผ๋‹ˆ ๋ฐ”๋กœ ํ•ด๊ฒฐ๋˜์—ˆ๋‹ค.

    Class.forName(โ€œcom.mysql.cj.jdbc.Driverโ€); .cj๋ฅผ ๋ถ™์—ฌ์ฃผ์ž !

    ์ถ”๊ฐ€๋กœ ํŠน์ • ์ž๋ฐ” ๋ฒ„์ „ ์ด์ƒ์—์„œ๋Š” Class.forName์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์•„๋„ ์ž๋™์œผ๋กœ ์—ฐ๊ฒฐํ•ด์ค€๋‹ค๋Š”๋ฐ

    ๊ทธ๊ฑด ๋‚˜์ค‘์—..


Leave a comment