IT/development

[Java] java class version ํ™•์ธ(feat. unsupported major version..)

์•Œ ์ˆ˜ ์—†๋Š” ์‚ฌ์šฉ์ž 2022. 11. 23.

image source:https://unsplash.com/s/photos/java

java class version ํ™•์ธ

๊ฐœ๋ฐœ์„ ํ•˜๋‹ค๋ณด๋ฉด ์ปดํŒŒ์ผ๋œ ์ž๋ฐ” ํด๋ž˜์Šค ๋ฒ„์ „์„ ํ™•์ธํ•ด์•ผ ๋˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค.

์‹ค์„œ๋ฒ„์˜ ํด๋ž˜์Šค ๋ฒ„์ „์„ ๋ฏธ๋ฆฌ ํ™•์ธ ํ•œ ๋‹ค์Œ ๊ทธ์— ๋งž์ถฐ์„œ ๋กœ์ปฌ ์†Œ์Šค๋ฅผ ์ปดํŒŒ์ผ ํ•˜๋Š”๊ฒŒ ์ข‹๋‹ค.

 

๊ณต๊ณต๊ธฐ๊ด€ ๋ฐฐํฌ ์‹œ ์—๋Ÿฌ๋ฅผ ์ฒ˜์Œ ๋งŒ๋‚ฌ์„ ๋•Œ 30๋ถ„์„ ๋‚ ๋ ค๋จน์€ ๊ธฐ์–ต์ด ๋‚œ๋‹ค.

(๋…ธํŠธ๋ถ์„ ๊ฐ€์ ธ๊ฐ€์ง€ ์•Š์•„์„œ ๋‹ค์‹œ ์ปดํŒŒ์ผ์„ ํ•œ ํŒŒ์ผ์„ ๋ฐ›์•„์•ผ ๋˜์„œ)๐Ÿ˜ญ

 

๋งŒ์ผ ๋ฏธ๋ฆฌ ํ™•์ธ ํ•˜์ง€ ์•Š๊ณ  ๊ทธ๋ƒฅ ๋ฐฐํฌํ•  ๊ฒฝ์šฐ unsupported major version ์—๋Ÿฌ๋ฅผ ๋งŒ๋‚˜๊ฒŒ ๋  ์ˆ˜๋„ ์žˆ๋‹ค.

๋งŒ๋‚˜๋Š” ๊ฑธ ๊ถŒ์žฅํ•˜์ง€๋Š” ์•Š์ง€๋งŒ ์–ด๋–ค ์—๋Ÿฌ์ธ์ง€ ์ง์ ‘ ๋งŒ๋‚˜๋ณด๋Š” ๊ฒƒ๋„ ๋‚˜์  ๊ฒƒ ๊ฐ™์ง€๋Š” ์•Š๋‹ค.(์‹œ๊ฐ„์ด ์—ฌ์œ ๋กœ์šฐ๋ฉด)

์—๋Ÿฌ๋Š” ๊ฐœ๋ฐœ์ž๋ฅผ ์„ฑ์žฅ ์‹œ์ผœ์ฃผ๋Š” ๋“ฏ ์‹ถ๋‹ค.

์˜ˆ๋ฅผ ์œ„ํ•ด ์ผ๋ถ€๋Ÿฌ ์—๋Ÿฌ๋ฅผ ๋ฐœ์ƒ์‹œ์ผœ ๋ดค๋‹ค.

์˜ˆ์ œ๋Š” IncludedInfo.class์—์„œ ๋ฒ„์ „ ์—๋Ÿฌ๊ฐ€ ๋‚œ ๊ฒƒ์ธ๋ฐ Unsupported major.minor version 52.0๋ผ๊ณ  ํ•œ๋‹ค.

"java major version"์œผ๋กœ ๊ตฌ๊ธ€๋ง ํ•ด๋ณด๋ฉด ์ž์„ธํžˆ ๋‚˜์˜ค๋Š”๋ฐ java major.minor versino์ด 52์ด๋ฉด 

image source:https://fabianlee.org/2018/01/19/java-determining-the-java-version-used-to-compile-a-class-class-file-has-the-wrong-version

java 8๋ฒ„์ „์œผ๋กœ ์ปดํŒŒ์ผ ๋œ ํด๋ž˜์Šค๋ž€ ์†Œ๋ฆฌ๋‹ค.

์ง„์งœ์ธ์ง€ ํ™•์ธ ํ•ด๋ณด๊ฒ ๋‹ค.(์ „์ œ์กฐ๊ฑด ๋‚ด ์ปดํ“จํ„ฐ์— jdk ํ™˜๊ฒฝ๋ณ€์ˆ˜๊ฐ€ ์žกํ˜€ ์žˆ์–ด์•ผ ๋œ๋‹ค.)

cmd ์‹คํ–‰ ํ›„ ํ•ด๋‹น ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ํด๋ž˜์Šค๊ฐ€ ์žˆ๋Š” ๊ฒฝ๋กœ๋กœ ์ด๋™ ํ›„ ์•„๋ž˜์ฒ˜๋Ÿผ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•œ๋‹ค.

javap -verbose class๋ช…(.class๋Š” ์ƒ๋žตํ•ด๋„ ๋ฌด๋ฐฉ) | find "version"

๋‚ด ๊ฒฝ์šฐ๋Š” ์ดํด๋ฆฝ์Šค์˜ workspace๋ฅผ G๋“œ๋ผ์ด๋ธŒ๋กœ ๋นผ๋†”์„œ G๋“œ๋ผ์ด๋ธŒ์˜ workspace์˜ ํ”„๋กœ์ ํŠธ ๊ฒฝ๋กœ๋กœ ์ด๋™ํ–ˆ๋‹ค.

์œ„์—์„œ ์˜ˆ์ƒ๋Œ€๋กœ major version์ด 52๋ผ๊ณ  ๋‚˜์˜จ๋‹ค, ์ฆ‰ ํ•ด๋‹น class๋Š” java 1.8 ๋ฒ„์ „์œผ๋กœ ์ปดํŒŒ์ผ ๋œ๊ฑฐ๋‹ค.

์ด ๊ฒฝ์šฐ๋Š” 1.8์— ๋งž์ถฐ์„œ ๋กœ์ปฌ ์†Œ์Šค๋ฅผ ์ปดํŒŒ์ผ ํ•ด์ค˜์•ผ ์‹ค์ œ ๋ฐฐํฌ ์‹œ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š๋Š”๋‹ค.

์ดํด๋ฆฝ์Šค java compile ๋ฒ„์ „ ๋ณ€๊ฒฝ๐Ÿ˜Š

์ดํด๋ฆฝ์Šค์—์„œ ์ปดํŒŒ์ผ ๋ฒ„์ „ ์„ค์ •์€ ์•„๋ž˜์ฒ˜๋Ÿผ ํ•˜๋ฉด ๋œ๋‹ค.

ํ•ด๋‹น ํ”„๋กœ์ ํŠธ ์šฐํด๋ฆญ > Java Compiler > Compiler compliance level์—์„œ ์›ํ•˜๋Š” ๋ฒ„์ „์œผ๋กœ ์„ค์ • ํ›„ Apply

๋งŒ์ผ ์ €๊ธฐ์„œ ์ปดํŒŒ์ผ ๋ฒ„์ „์„ 1.6์œผ๋กœ ๋ณ€๊ฒฝํ•˜๋ฉด ์•„๋ž˜์ฒ˜๋Ÿผ 1.6 ๋ฒ„์ „์œผ๋กœ ์ปดํŒŒ์ผ ๋œ ํด๋ž˜์Šค๊ฐ€ ์ƒ์„ฑ๋œ๋‹ค.


Tomcat Runtime Environment ๋ฒ„์ „ ๋ณ€๊ฒฝ๐Ÿ˜˜

์œ„์˜ ๊ฒฝ์šฐ๋Š” ์†Œ์Šค์ฝ”๋“œ ์ปดํŒŒ์ผ ๋ฒ„์ „๋งŒ ๋ณ€๊ฒฝ์„ ํ•œ๊ฑฐ๊ณ  ์ดํด๋ฆฝ์Šค์—์„œ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒ ์•ˆ๋‚˜๋„๋ก ํ•˜๋ ค๋ฉด tomcat ๋Ÿฐํƒ€์ž„ํ™˜๊ฒฝ์„ค์ •๋„ ๋ณ€๊ฒฝ ํ•ด์ค˜์•ผ ํ•œ๋‹ค.

์ปดํŒŒ์ผ ๋ฒ„์ „๋งŒ ๋ณ€๊ฒฝํ•œ ๋‹ค์Œ ๋กœ์ปฌ์—์„œ tomcat ์‹คํ–‰ ์‹œ ์•„๋ž˜์ฒ˜๋Ÿผ ์—ฌ์ „ํžˆ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.

์›์ธ์€ tomcat์˜ ๋Ÿฐํƒ€์ž„ ํ™˜๊ฒฝ์ด 1.7๋กœ ๋˜์–ด ์žˆ์–ด์„œ 1.8๋กœ ์ปดํŒŒ์ผ ํ•œ class๋ฅผ tomcat์ด ์ฝ์„ ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.


ํ•ด๋‹น ํ”„๋กœ์ ํŠธ์˜ tomcat ๋Ÿฐํƒ€์ž„ ํ™˜๊ฒฝ์„ ๋ฐ”๊พธ๊ฒ ๋‹ค.

Servers > ํ•ด๋‹น ํ”„๋กœ์ ํŠธ ์„œ๋ฒ„ ํด๋ฆญ > Runtime Environment ํด๋ฆญ > JRE ๋ฒ„์ „ ๋ณ€๊ฒฝ ํ›„ Finish

๊ทธ ํ›„ ๋‹ค์‹œ tomcat์„ ์žฌ์‹คํ–‰ํ•ด ๋ณด๋ฉด ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š๋Š”๋‹ค.


์ •๋ฆฌํ•˜๋ฉด ์ด๋ ‡๋‹ค.

๋ฏธ๋ฆฌ ์‹ค์„œ๋ฒ„์˜ java ํด๋ž˜์Šค ๋ฒ„์ „์„ javap ๋ช…๋ น์–ด๋กœ ํ™•์ธ ํ›„ ๊ทธ์— ๋งž์ถฐ์„œ ์ปดํŒŒ์ผ ํ›„ ๋ฐฐํฌ

๋กœ์ปฌ์—์„œ ํ…Œ์ŠคํŠธ ์‹œ ํ†ฐ์บฃ ๋Ÿฐํƒ€์ž„ ํ™˜๊ฒฝ๋„ ๋งž์ถœ ๊ฒƒ


 

[Java] Java bit ํ™•์ธ

๋ชฉ์ฐจ Java bit ํ™•์ธํ•  ๊ฒฝ์šฐ cmd ์‹คํ–‰ ํ›„ ์•„๋ž˜ ๋ช…๋ น์–ด ์ž…๋ ฅ ์œ„ ์ด๋ฏธ์ง€์ฒ˜๋Ÿผ 64-Bit๋ผ๋Š” ๋‚ด์šฉ์ด ํ‘œ์‹œ๋˜๋ฉด 64bit Java๊ฐ€ ์„ค์น˜๋œ ๊ฒƒ์ž„ ์•„๋ž˜์ฒ˜๋Ÿผ ๋‚˜์˜ค๋ฉด 32bit ์„ค์น˜๋œ ๊ฒƒ์ž„ Error : This Java instance does not support a 64-bi

yaga.tistory.com

 

[java] PKIX path building failed ํ•ด๊ฒฐ๋ฐฉ๋ฒ•(HTTPS ํ†ต์‹  ์—๋Ÿฌ)

๋ชฉ์ฐจjava์—์„œ ์™ธ๋ถ€ ์‚ฌ์ดํŠธ์— HTTPS๋กœ ํ†ต์‹ ํ•  ๊ฒฝ์šฐ "PKIX path building failed"๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค.์›์ธ์€ ์—ฌ๋Ÿฌ๊ฐ€์ง€๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์ง€๋งŒ ๋‚ด ๊ฒฝ์šฐ๋Š” ํ•ด๋‹น ์‚ฌ์ดํŠธ์˜ ์ธ์ฆ์„œ๋ฅผ JVM์˜ ์ธ์ฆ์„œ ๋ชฉ๋ก์— ์ถ”๊ฐ€ํ•ด ์ค˜์„œ ํ•ด

yaga.tistory.com

 

[Java] linux jdk ํ™˜๊ฒฝ๋ณ€์ˆ˜ ์„ธํŒ…

linux์—์„œ ์ง์ ‘ ๋‹ค์šด๋กœ๋“œ ๋ฐ›๊ฑฐ๋‚˜ ์„ค์น˜ํŒŒ์ผ์„ ์™ธ๋ถ€์—์„œ ๊ตฌํ•œ ๋’ค ์—…๋กœ๋“œ ํ•˜๊ฑฐ๋‚˜ ํ•ด์„œ jdk๋ฅผ ์„ค์น˜ ํ™˜๊ฒฝ๋ณ€์ˆ˜ ์„ธํŒ… ๐Ÿ˜„ viํŽธ์ง‘๊ธฐ๋กœ ํ”„๋กœํŒŒ์ผ ์˜คํ”ˆ # home๊ฒฝ๋กœ์˜ ํ”„๋กœํŒŒ์ผ์„ viํŽธ์ง‘๊ธฐ๋กœ ์—ฐ๋‹ค. vi ~/.bash_profile

yaga.tistory.com

 

 

[AWS] EC2 + Docker + RDS๋กœ ์‰ฝ๊ฒŒ ๋ฐฐ์šฐ๋Š” ์„œ๋ฒ„ ๋ฐ DB ๊ตฌ์ถ• ๊ฐ€์ด๋“œ ๐Ÿš€๐Ÿ’ป๐Ÿ“ฆ

์ด ํฌ์ŠคํŒ…์€ AWS ํšŒ์›๊ฐ€์ž…๋ถ€ํ„ฐ EC2/RDS ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ ๋ฐ ์›น์„œ๋ฒ„์™€ ์—ฐ๋™ํ•œ ๊ธฐ๋ณธ ๊ฐ€์ด๋“œ์ž…๋‹ˆ๋‹ค.๋น ๋ฅธ ์‹œ์ผ๋‚ด์— AWS ํšŒ์›๊ฐ€์ž…๋ถ€ํ„ฐ ์•„ํ‚คํ…์ฒ˜ 3๊นŒ์ง€ ๊ตฌ์ถ•ํ•˜๋Š” ๋ผ์ด๋ธŒ ์˜์ƒ ํฌ์ŠคํŒ… ์˜ˆ์ •์ž…๋‹ˆ๋‹ค.2025๋…„ 2์›”15

yaga.tistory.com

๋Œ“๊ธ€