Language/Java (JVM)

β˜• JDK & JRE μ΄ˆκ°„λ‹¨ μ„€μΉ˜ 및 ν™˜κ²½ λ³€μˆ˜ μ„€μ •

인파_ 2022. 8. 1. 14:14

μžλ°”ν™˜κ²½λ³€μˆ˜

μžλ°” (JDK / JRE) μ„€μΉ˜

λ¨Όμ € μ•„λž˜ ν™ˆνŽ˜μ΄μ§€μ—μ„œ jdk와 jreλ₯Ό μ„€μΉ˜ν•΄μ€€λ‹€.

  • JRE : μžλ°” μ‹€ν–‰ ν™˜κ²½(Java Runtime Environment)의 μ•½μžλ‘œ μžλ°”λ‘œ λ§Œλ“€μ–΄μ§„ ν”„λ‘œκ·Έλž¨μ„ μ‹€ν–‰μ‹œν‚€λŠ”λ° ν•„μš”ν•˜λ‹€.
  • JDK : μžλ°” κ°œλ°œν‚€νŠΈ(Java Development Kit)의 μ•½μžλ‘œ 이름 κ·ΈλŒ€λ‘œ κ°œλ°œμžλ“€μ΄ μžλ°”λ‘œ κ°œλ°œν•˜λŠ” 데 μ‚¬μš©λœλ‹€.

jdk-jre-install
jdk-jre-install

β€» JAVA SE 8 ( 8u202 and earlier ) 버전을 μ‚¬μš©ν•˜λŠ” 이유
Oracle이 2018λ…„ 7μ›”λΆ€ν„° JAVAλ₯Ό 유료( Paid ) κ΅¬λ…ν˜• λΌμ΄μ„ΌμŠ€λ‘œ κ°œνŽΈν•˜λ©΄μ„œ JAVA SE 8 ( 8u211 and later ) λ²„μ „λΆ€ν„°λŠ” 6κ°œμ›” μ΄ν›„λΆ€ν„°λŠ” λ³΄μ•ˆ μ—…λ°μ΄νŠΈκ°€ 이루어지지 μ•ŠλŠ” ν˜•νƒœλ‘œ λ³€κ²½λ˜μ—ˆλ‹€.
κ·Έλ ‡κΈ° λ•Œλ¬Έμ— Oracleμ—μ„œ 무료둜 λ³΄μ•ˆ μ—…λ°μ΄νŠΈλ₯Ό μ§€μ›ν•˜λŠ” JDK 8u202 and ealier 버전을 μ‚¬μš©ν•œλ‹€.
JDK λ‹€μš΄λ‘œλ“œ λ°›μ•„μ„œ μ„€μΉ˜ν•˜λ©΄ JRE도 λ‹€ μ„€μΉ˜λ˜λ‹ˆκΉŒ JDK만 μ„€μΉ˜ν•΄μ€˜λ„ λœλ‹€.

 

λ‹€μš΄λ‘œλ“œλ₯Ό μ§„ν–‰ν•˜λŠ” 과정에 μžˆμ–΄ 였라클 계정에 둜그인 λ˜μ–΄ μžˆμ§€ μ•Šλ‹€λ©΄ 둜그인 νŽ˜μ΄μ§€λ‘œ 이동을 ν•˜κ²Œλœλ‹€.

계정이 μ‘΄μž¬ν•œλ‹€λ©΄ λ‘œκ·ΈμΈμ„ ν•˜λ©΄ JDK의 λ‹€μš΄μ΄ 이루어지고, 계정이 μ‘΄μž¬ν•˜μ§€ μ•ŠλŠ”λ‹€λ©΄ μš°μ„  νšŒμ›κ°€μž… ν›„ λ‘œκ·ΈμΈν•˜μ—¬ λ‹€μ‹œ λ‹€μš΄λ°›λ„λ‘ ν•˜μž.

jdk-jre-install
jdk-jre-install

 

jdk-jre-install

 

jdk-jre-installjdk-jre-installjdk-jre-installjdk-jre-install
사진 상은 Java 9 λ²„μ „μ΄μ§€λ§Œ μ„€μΉ˜κ³Όμ •μ€ λ™μΌν•˜λ‹€

 

기본적으둜 μœˆλ„μš° ν™˜κ²½μ—μ„œ JDKλŠ” C:\Program\ κ²½λ‘œμ— JAVA 디렉토리λ₯Ό μƒˆλ‘œ λ§Œλ“€κ³  κ·Έ μ•ˆμ— JDK의 μ„€μΉ˜κ°€ μ§„ν–‰λœλ‹€.

μ„€μΉ˜κ°€ μ™„λ£Œλ˜λ©΄, ν•΄λ‹Ήκ²½λ‘œ(C:\Program Files\Java) 에 jdk1.8.0_202, jre1.8.0_202 폴더가 κ΅¬μ„±λœ 것을 확인할 수 μžˆλ‹€.

jdk-jre-install


μžλ°” ν™˜κ²½λ³€μˆ˜ μ„€μ • (μœˆλ„μš°)

 

(ꡬ) μ œμ–΄νŒ

  • μ œμ–΄νŒ → μ‹œμŠ€ν…œ 및 λ³΄μ•ˆ → μ‹œμŠ€ν…œ

μžλ°”ν™˜κ²½λ³€μˆ˜

 

(μ‹ ) μ œμ–΄νŒ

  • ν™ˆ → μ‹œμŠ€ν…œ → 정보 → κ³ κΈ‰ μ‹œμŠ€ν…œ μ„€μ •

μžλ°”ν™˜κ²½λ³€μˆ˜
μžλ°”ν™˜κ²½λ³€μˆ˜
μžλ°”ν™˜κ²½λ³€μˆ˜
μžλ°”ν™˜κ²½λ³€μˆ˜

[ μ‚¬μš©μžλ³€μˆ˜ vs μ‹œμŠ€ν…œλ³€μˆ˜ ]
μžλ°”ν™˜κ²½λ³€μˆ˜

 

[μ‚¬μš©μžλ³€μˆ˜]
- μ‚¬μš©μžλ³€μˆ˜λŠ” λ§κ·ΈλŒ€λ‘œ λ‘œκ·ΈμΈμ„ ν•œ μ‚¬μš©μžμ—λ§Œ λŒ€ν•œ λ³€μˆ˜λ₯Ό μ˜λ―Έν•œλ‹€.
- λ‚΄κ°€ user1 계정에 λ‘œκ·ΈμΈν•˜κ³  μžλ°”λ₯Ό μ„€μΉ˜ν•˜κ³  cmd μ°½μ—μ„œ java -version 을 μž…λ ₯ν•˜λ©΄ μžλ°” λ²„μ „μ˜ 정보가 좜λ ₯λœλ‹€.
- ν•˜μ§€λ§Œ user2 둜 λ‘œκ·ΈμΈμ„ ν•΄μ„œ java -version 을 μž…λ ₯ν•˜λ©΄? λ‹Ήμ—°νžˆ λ˜μ§€ μ•ŠλŠ”λ‹€.
- μ¦‰, λͺ¨λ“  μ‚¬μš©μžκ°€ μ•„λ‹Œ ν•˜λ‚˜μ˜ μ‚¬μš©μž(계정)μ—κ²Œλ§Œ κΆŒν•œμ„ μ€€λ‹€ 라고 μƒκ°ν•˜λ©΄ λœλ‹€.

[μ‹œμŠ€ν…œλ³€μˆ˜]
- μ‹œμŠ€ν…œλ³€μˆ˜λŠ” μœ„μ˜ μ‚¬μš©μžλ³€μˆ˜μ™€λŠ” λ°˜λŒ€μ΄λ‹€.
- μ‚¬μš©μžκ°€ μ•„λ‹Œ 이 컴퓨터(μ‹œμŠ€ν…œ)에 κΆŒν•œμ„ λΆ€μ—¬ν–ˆκΈ°μ— λͺ¨λ“  μ‚¬μš©μžκ°€ λ™μΌν•˜κ²Œ java -version 을 μž…λ ₯ν•˜λ©΄ 좜λ ₯이 되게 λœλ‹€.

[κ²°λ‘ ]
- JDK λ₯Ό μ„€μΉ˜ν•˜μ‹€ λ•ŒλŠ” 무쑰건 μ‹œμŠ€ν…œλ³€μˆ˜μ— μ„€μ •ν•˜κΈΈ κΆŒν•œλ‹€.
- λ¬Όλ‘  μ‚¬μš©μž λ³€μˆ˜μ— 해도 λ˜μ§€λ§Œ ν•˜λ‚˜μ˜ PC에 μ—¬λŸ¬ 계정을 μ‚¬μš©ν•˜κ³  μ—¬λŸ¬ 계정이 JDKλ₯Ό μ΄μš©ν•΄μ•Ό ν•œλ‹€λ©΄ 번거둜울 수 있기 λ•Œλ¬Έμ΄λ‹€.

μ‹œμŠ€ν…œ ν™˜κ²½λ³€μˆ˜ 등둝

이제 ν™˜κ²½λ³€μˆ˜ 창으둜 κ°€μ„œ μžλ°” λ³€μˆ˜λ₯Ό μΆ”κ°€ν•΄μ£ΌλŠ” μž‘μ—…μ„ ν•΄μ€€λ‹€.

총 등둝할 ν™˜κ²½λ³€μˆ˜λŠ” λ‹€μŒ 3κ°€μ§€κ°€ μžˆλ‹€.

  • JAVA_HOME : C:\Program Files\Java\jdk1.8.0_202
  • JRE_HOME : C:\Program Files\Java\jre1.8.0_202
  • CLASSPATH : %JAVA_HOME%lib
JRE_HOME을 λ“±λ‘ν•΄μ£ΌλŠ” μ΄μœ λŠ”, λ‚˜μ€‘μ— 톰캣을 μ΄μš©ν•˜κΈ° μœ„ν•΄μ„œ 이닀.

 

λ¨Όμ € μ‹œμŠ€ν…œ λ³€μˆ˜ ν•­λͺ©μ—μ„œ μƒˆλ‘œ λ§Œλ“€κΈ° λ²„νŠΌμ„ λˆ„λ₯΄κ³ , 

μ‹œμŠ€ν…œ ν™˜κ²½λ³€μˆ˜ 등둝

 

μ‹œμŠ€ν…œ λ³€μˆ˜ νŽΈμ§‘ 창이 λ‚˜νƒ€λ‚˜λŠ”λ° μœ„μ—μ„œ λ¦¬μŠ€νŠΈν•œ ν™˜κ²½λ³€μˆ˜λ₯Ό 각각 λ‹€μŒκ³Ό 같이 κΈ°μž¬ν•΄μ£Όλ©΄ λœλ‹€.

μ‹œμŠ€ν…œ ν™˜κ²½λ³€μˆ˜ 등둝
μ‹œμŠ€ν…œ ν™˜κ²½λ³€μˆ˜ 등둝
μ‹œμŠ€ν…œ ν™˜κ²½λ³€μˆ˜ 등둝
μžλ°”ν™˜κ²½λ³€μˆ˜

 

λ§ˆμ§€λ§‰μœΌλ‘œ, ν™˜κ²½ λ³€μˆ˜ μ°½μ—μ„œ Pathλ₯Ό μ°Ύκ³  νŽΈμ§‘ λ²„νŠΌμ„ ν΄λ¦­ν•œλ‹€.

β€» Path ν™˜κ²½λ³€μˆ˜μ˜ μ—­ν• 
μ–΄λ–€ μ‹€ν–‰νŒŒμΌμ„ μ‹€ν–‰ ν•˜λŠ”λ° μžˆμ–΄ ν•΄λ‹Ή μœ„μΉ˜μ— 파일이 μ—†μœΌλ©΄ μ»΄ν“¨ν„°λŠ” 2차적으둜 Pathκ²½λ‘œμ—μ„œ μ‹€ν–‰ νŒŒμΌμ„ μ°Ύμ•„ μ‹€ν–‰ν•œλ‹€.

μžλ°”ν™˜κ²½λ³€μˆ˜
μžλ°”ν™˜κ²½λ³€μˆ˜

 

%JAVA_HOME%\bin
%JRE_HOME%\bin

 

등둝을 μ™„λ£Œν–ˆμœΌλ‹ˆ, cmd창으둜 κ°€μ„œ 이제 JAVA 8이 μ •μƒμ μœΌλ‘œ μ‹€ν–‰λ˜λŠ”μ§€ 확인해 보자.

> java -version
> javac -version

javac

β€» javac.exe λž€?
μžλ°” 컴파일러( JAVA Compiler )λ₯Ό μ΄μ•ΌκΈ°ν•˜λ©°, μžλ°”μ½”λ“œλ₯Ό μž‘μ„±ν•œ μ†ŒμŠ€νŒŒμΌ( .java )을 μžλ°” 가상 λ¨Έμ‹ ( JVM )이 인식할 수 μžˆλŠ” λ°”μ΄νŠΈ μ½”λ“œ( .class ) νƒ€μž…μœΌλ‘œ λ³€ν™˜μ‹œμΌœμ£ΌλŠ” 역할을 ν•œλ‹€.

β€» java.exe λž€?
μžλ°” 인터프리터( JAVA Interpreter )라고 ν•˜λ©°, μžλ°” ν”„λ‘œκ·Έλž¨( .class )을 μ‹€ν–‰μ‹œν‚¨λ‹€.