μλμ°μμ μ€νλλ μλ° νμΌ(Java File)μ΄ κ°μκΈ° μ€νλμ§ μλ λ¬Έμ λ μ¬λ¬ κ°μ§ μμΈμΌλ‘ λ°μν μ μμ΅λλ€. νΉν, JDK μ€μΉ λ¬Έμ , νκ²½ λ³μ μ€μ , μ½λ μ€λ₯, λλ μλ° λ°νμ νκ²½(JRE) λ¬Έμ λ±μ΄ μ£Όμ μμΈμ λλ€. μλμμ λ¨κ³λ³λ‘ μμΈκ³Ό ν΄κ²° λ°©λ²μ μ λ¦¬ν΄ λ³΄μμ΅λλ€.
1. μλ° νμΌ μ€ν λ¬Έμ μ μ£Όμ μμΈ
- JDK λλ JRE λ―Έμ€μΉ λλ μμ: μλ° μ€νμ νμν Java Development Kit(JDK) λλ Java Runtime Environment(JRE)κ° μ¬λ°λ₯΄κ² μ€μΉλμ§ μμκ±°λ μμλμμ μ μμ΅λλ€.
- νκ²½ λ³μ μ€μ λ¬Έμ : JAVA_HOME λλ PATH νκ²½ λ³μκ° μ λλ‘ μ€μ λμ§ μμ κ²½μ° μλ° νμΌ μ€νμ΄ μ€ν¨ν μ μμ΅λλ€.
- νμΌ κ²½λ‘ λ¬Έμ : μλ° νμΌ(.java)μ΄ μλͺ»λ λλ ν 리μμ μ€νλκ±°λ, μ€ν λͺ λ Ήμ΄ μ¬λ°λ₯΄μ§ μμ μ μμ΅λλ€.
- μ½λ μ€λ₯: μλ° νμΌ μ체μ μ€νν μ μλ μ€λ₯κ° μμ μ μμ΅λλ€.
2. ν΄κ²° λ°©λ²
(1) JDK λ° JRE μ€μΉ νμΈ
- μ€μΉ νμΈ:
- λͺ
λ Ή ν둬ννΈ(CMD) μ΄κΈ° >
java -version
μ λ ₯ ν Enter. - μ μμ μΌλ‘ μ€μΉλμ΄ μλ€λ©΄ νμ¬ μ€μΉλ Java λ²μ μ΄ νμλ©λλ€.
μ:java version "17.0.2" Java(TM) SE Runtime Environment (build 17.0.2+8) Java HotSpot(TM) 64-Bit Server VM (build 17.0.2+8, mixed mode)
- λͺ
λ Ή ν둬ννΈ(CMD) μ΄κΈ° >
- μ€μΉλμ§ μμκ±°λ λ²μ μ΄ νμλμ§ μμΌλ©΄:
- μ€λΌν΄ 곡μ μ¬μ΄νΈ λλ OpenJDKμμ μ΅μ JDKλ₯Ό λ€μ΄λ‘λνκ³ μ€μΉνμΈμ.
- JREλ JDK μ€μΉ μ ν¨κ» μ€μΉλλ―λ‘ λ°λ‘ μ€μΉν νμκ° μμ΅λλ€.
(2) νκ²½ λ³μ μ€μ νμΈ
JDKκ° μ€μΉλμ΄ μμ΄λ νκ²½ λ³μ μ€μ μ΄ μλͺ»λμμΌλ©΄ μ€νλμ§ μμ μ μμ΅λλ€. μ΄λ₯Ό νμΈνκ³ μ¬λ°λ₯΄κ² μ€μ ν΄ λ³΄μΈμ.
- νκ²½ λ³μ μ€μ νμΈ:
- JAVA_HOME νμΈ:
- μ μ΄ν > μμ€ν > κ³ κΈ μμ€ν μ€μ > νκ²½ λ³μλ‘ μ΄λ.
- μμ€ν
λ³μμμ
JAVA_HOME
νμΈ. - κ°μ΄ JDK μ€μΉ κ²½λ‘(μ:
C:\Program Files\Java\jdk-17.0.2
)λ‘ μ€μ λμ΄ μλμ§ νμΈ.
- PATH νμΈ:
- μμ€ν
λ³μμμ
Path
λ₯Ό μ°Ύμ νΈμ§ ν΄λ¦. JAVA_HOME\bin
(μ:C:\Program Files\Java\jdk-17.0.2\bin
) κ²½λ‘κ° μΆκ°λμ΄ μλμ§ νμΈ.
- μμ€ν
λ³μμμ
- JAVA_HOME νμΈ:
- νκ²½ λ³μ μ€μ λ°©λ²:
JAVA_HOME
μ μ€μ νλ €λ©΄:- μ λ³μ μΆκ° > λ³μ μ΄λ¦:
JAVA_HOME
, λ³μ κ°: JDK μ€μΉ κ²½λ‘.
- μ λ³μ μΆκ° > λ³μ μ΄λ¦:
Path
μ μΆκ°νλ €λ©΄:- νΈμ§ ν΄λ¦ > μλ‘ λ§λ€κΈ° >
%JAVA_HOME%\bin
μΆκ°.
- νΈμ§ ν΄λ¦ > μλ‘ λ§λ€κΈ° >
- CMDλ₯Ό λ€μ μ΄κ³
java -version
κ³Όjavac -version
μ μ λ ₯ν΄ νμΈνμΈμ.
(3) μλ° νμΌ μ€ν λͺ λ Ή νμΈ
λͺ λ Ή ν둬ννΈμμ μλ° νμΌμ μ€νν λ, μλ λͺ λ Ήμ΄λ₯Ό νμΈνμΈμ.
- μ»΄νμΌ:
- μλ° νμΌμ μ€ννλ €λ©΄ λ¨Όμ
.class
νμΌλ‘ μ»΄νμΌν΄μΌ ν©λλ€. - λͺ
λ Ήμ΄:
javac νμΌμ΄λ¦.java
- μ:
javac HelloWorld.java
- μ:
- μλ° νμΌμ μ€ννλ €λ©΄ λ¨Όμ
- μ€ν:
- μ»΄νμΌμ΄ μλ£λλ©΄ μμ±λ
.class
νμΌμ μ€νν©λλ€. - λͺ
λ Ήμ΄:
java νμΌμ΄λ¦
- μ:
java HelloWorld
- μ:
- μ»΄νμΌμ΄ μλ£λλ©΄ μμ±λ
- μ£Όμ:
.java
νμ₯μλ μ€ν λͺ λ Ήμ ν¬ν¨νμ§ μμ΅λλ€.- νμ¬ μμ
λλ ν λ¦¬κ° μλ° νμΌμ΄ μλ κ²½λ‘μ μΌμΉνλμ§ νμΈνμΈμ.
- λͺ
λ Ήμ΄:
cd [νμΌμ΄ μμΉν λλ ν 리]
- λͺ
λ Ήμ΄:
(4) μ€ν λλ ν 리μ νμΌ νμΈ
- νμΌ κ²½λ‘ νμΈ:
- μλ° νμΌμ΄ μ€ν λͺ λ Ήμ μ€ννλ λλ ν 리μ μλμ§ νμΈνμΈμ.
- λͺ
λ Ήμ΄:
dir
λ‘ νμ¬ λλ ν 리μ μλ νμΌ λͺ©λ‘μ νμΈν©λλ€.
- ν¨ν€μ§ μ¬μ© μ¬λΆ:
- μλ° νμΌμ΄ νΉμ ν¨ν€μ§ λ΄μ μλ€λ©΄, ν¨ν€μ§ ꡬ쑰λ₯Ό μ μ§ν μνμμ μ€νν΄μΌ ν©λλ€.
- μ:
com.example.HelloWorld
ν¨ν€μ§μ μλ κ²½μ°:javac com/example/HelloWorld.java java com.example.HelloWorld
(5) μλ° μ½λ μ€λ₯ νμΈ
μλ° μ½λ μ체μ λ¬Έμ κ° μλ κ²½μ°, μ»΄νμΌ λ¨κ³μμ μλ¬κ° λ°μνκ±°λ μ€νμ΄ μ λλ‘ λμ§ μμ μ μμ΅λλ€.
- κΈ°λ³Έμ μΈ μ½λ μμ :
- μ μ½λλ₯Ό μ¬μ©ν΄ μ»΄νμΌκ³Ό μ€νμ΄ μ μμ μΌλ‘ μ΄λ£¨μ΄μ§λμ§ ν μ€νΈν΄λ³΄μΈμ.
public class HelloWorld { public static void main(String[] args) { System.out.println("Hello, World!"); } }
- μ½λμμ λ°μν μ μλ λ¬Έμ :
- ν΄λμ€ μ΄λ¦μ΄ νμΌ μ΄λ¦κ³Ό λ€λ₯Ό κ²½μ°: μλ°μμ νμΌ μ΄λ¦κ³Ό ν΄λμ€ μ΄λ¦μ λμΌν΄μΌ ν©λλ€.
- μ:
HelloWorld.java
νμΌμλpublic class HelloWorld
κ° ν¬ν¨λμ΄μΌ ν©λλ€.
- μ:
main
λ©μλκ° μκ±°λ μλͺ» μ μλ κ²½μ°: μ€ν κ°λ₯ν μνΈλ¦¬ ν¬μΈνΈκ° νμν©λλ€.- μ νν λ©μλ μλͺ
:
public static void main(String[] args)
- μ νν λ©μλ μλͺ
:
- ν΄λμ€ μ΄λ¦μ΄ νμΌ μ΄λ¦κ³Ό λ€λ₯Ό κ²½μ°: μλ°μμ νμΌ μ΄λ¦κ³Ό ν΄λμ€ μ΄λ¦μ λμΌν΄μΌ ν©λλ€.
(6) λλ²κΉ λ° λ‘κ·Έ νμΈ
- μ€ν μ μ€λ₯ λ©μμ§κ° νμλμλ€λ©΄, μ΄λ₯Ό μ£Όμ κΉκ² μ½κ³ λ¬Έμ λ₯Ό ν΄κ²°νμΈμ.
- μ€λ₯ λ‘κ·Έ μμ:
Exception in thread "main"
:main
λ©μλ μ μκ° μλͺ»λμκ±°λ λλ½λ¨.NoClassDefFoundError
: ν΄λμ€ νμΌμ΄ κ²½λ‘μ μκ±°λ μ λλ‘ μμ±λμ§ μμ.
(7) μλ° λ²μ νΈνμ± νμΈ
- μλ° μ½λκ° νΉμ λ²μ μμλ§ μ€νλλλ‘ μμ±λμμ κ°λ₯μ±μ΄ μμ΅λλ€.
- μλ° 8 μ΄μμμλ λλ€ ννμ λ±μ μ΅μ λ¬Έλ²μ μ¬μ©ν μ μμΌλ, μλ° λ²μ μ νμΈνκ³ μ½λλ₯Ό μ€ννμΈμ.
- ꡬλ²μ μμ μ€νν΄μΌ νλ€λ©΄, μ½λμ JDK λ²μ μ λ§μΆμΈμ.
3. μμ£Ό 묻λ μ§λ¬Έ (FAQ)
Q1. μλ°κ° μ€μΉλμ΄ μμ§λ§, μ€ν λͺ
λ Ήμ΄ λ¨Ήνμ§ μμ΅λλ€.
A1. νκ²½ λ³μ μ€μ μ΄ μλͺ»λμκ±°λ λλ½λμμ κ°λ₯μ±μ΄ λμ΅λλ€. JAVA_HOME
κ³Ό Path
λ₯Ό λ€μ μ€μ ν΄λ³΄μΈμ.
Q2. javac
λͺ
λ Ήμ΄λ λλλ°, java
λͺ
λ Ήμ΄κ° μλνμ§ μμ΅λλ€.
A2. μ΄λ νκ²½ λ³μμμ JAVA_HOME\bin
κ²½λ‘κ° μ λλ‘ μ€μ λμ§ μμκ±°λ, java
μ€ν νμΌμ΄ μμλ κ²½μ°μ
λλ€. JDKλ₯Ό μ¬μ€μΉνμΈμ.
Q3. μλ° μ€ν μ NoClassDefFoundError
μ€λ₯κ° λ°μν©λλ€.
A3. ν΄λμ€ νμΌμ΄ μλͺ»λ κ²½λ‘μ μκ±°λ ν¨ν€μ§ κ΅¬μ‘°κ° μΌμΉνμ§ μμ κ°λ₯μ±μ΄ ν½λλ€. μ»΄νμΌ κ²½λ‘μ μ€ν λͺ
λ Ήμ΄λ₯Ό λ€μ νμΈνμΈμ.
Q4. μλ° μ½λκ° μ μμΈλ°λ μ€νλμ§ μμ΅λλ€.
A4. JDKμ JREκ° μ΅μ μνμΈμ§ νμΈνκ³ , λ€λ₯Έ μ»΄ν¨ν°μμ μ€νν΄λ³΄μΈμ. μ½λ μ체μ λ¬Έμ μΈμ§ μμ€ν
λ¬Έμ μΈμ§ ꡬλΆν μ μμ΅λλ€.
κ²°λ‘ : λ¨κ³λ³λ‘ μ κ²νλ©° λ¬Έμ λ₯Ό ν΄κ²°νμΈμ
μλ° νμΌμ΄ μ€νλμ§ μλ λ¬Έμ λ νκ²½ λ³μ μ€μ , μ½λ μ€λ₯, JDK μ€μΉ λ¬Έμ μμ μ£Όλ‘ λ°μν©λλ€. μ λ¨κ³λ₯Ό μ°¨κ·Όμ°¨κ·Ό λ°λΌνλ©° λ¬Έμ λ₯Ό μ κ²νκ³ , νμ μ JDKλ₯Ό μ¬μ€μΉνκ±°λ νκ²½ λ³μλ₯Ό μ¬μ€μ νμΈμ.
λκΈ