β μλ° νλ‘μ νΈ μμ±λΆν° 'Hello World' λͺ λ Ή ν둬ννΈλ‘ μΆλ ₯νκΈ°
μλ° νλ‘μ νΈλ₯Ό μμ±νκ³ . java νμ₯μλ₯Ό κ°μ§κ³ μλ νμΌμ λ§λ ν, μΆλ ₯νκ³ μ νλ 'Hello World!'λ₯Ό μ½μμ μΆλ ₯ν΄ λ³΄μμ΅λλ€. Eclipse IDE ν΄μ μ΄μ©ν΄ μ½μμ μΆλ ₯ν΄ λ³΄μλ€λ©΄. java νμΌμ λͺ λ Ή ν둬ννΈλ₯Ό νμ©ν΄μ μΆλ ₯ν΄ λ³΄κ² μ΅λλ€.
μλ° νλ‘μ νΈ μμ±νκΈ°
https://junesker.tistory.com/130
β μλ° νλ‘μ νΈ μμ±λΆν° 'Hello World' μ½μμ μΆλ ₯νκΈ°
μ΄ν΄λ¦½μ€ κ°λ° νκ²½ ꡬμΆμ μλ£νλ€λ©΄, μλ° κ°λ°μ μν μλ° νλ‘μ νΈ μμ±μ΄ νμν©λλ€. μμ±λ νλ‘μ νΈ νμΌμ μ΄μ©ν΄μ μνλ ν΄λμ€λ₯Ό λ§λ€κ³ λ§λ νλ‘κ·Έλ¨μ μ€ννκΈ° μν΄ main()
junesker.tistory.com
μλ° νλ‘μ νΈ μμ±μ μ΄μ κΈλ‘ λμ νλλ‘ νκ² μ΅λλ€. μλ° νλ‘μ νΈλ₯Ό μμ±νκ³ μνλ ν¨ν€μ§λͺ μ ν¨ν€μ§λ₯Ό λ§λ ν, μλ° νμΌμ μμ±ν©λλ€.
λͺ λ Ή ν둬ννΈλ‘ μΆλ ₯νκΈ°
Eclipse IDEλ‘ .java νμΌμ νΈλ¦¬νκ² μ»΄νμΌνκ³ Runμ ν΅ν΄ μ½μμ μΆλ ₯ν μ μμ΅λλ€. μ΄ν΄λ¦½μ€λ 볡μ‘ν λͺ λ Ήμ΄λ₯Ό λͺ°λΌλ μ½κ² μλ° νλ‘κ·Έλ¨μ μ€νν μ μλλ‘ λμμ€λλ€. νμ§λ§, Eclipse IDEλ₯Ό ν΅ν΄ μ€ννλ κ² μλλΌ λͺ λ Ή ν둬ννΈ λλ ν°λ―Έλκ³Ό κ°μ λͺ λ Ή λΌμΈμμ javacμ java λͺ λ Ήμ΄λ‘ μμ€ νμΌμ μ§μ μ»΄νμΌνκ³ μ€νν΄μΌ ν λλ μμ΅λλ€.
1. νμκΈ°λ₯Ό μ΄κ³ μν¬μ€νμ΄μ€μ μ μ₯λ λ΄ νλ‘μ νΈμ μμΉλ‘ μ΄λν©λλ€.
μν¬μ€νμ΄μ€μ μ μ₯λ λ΄ νλ‘μ νΈμ μμΉλ‘ μ΄λνλ©΄ 'src', 'bin' ν΄λκ° μ‘΄μ¬ν©λλ€. 'src' ν΄λμλ μλ° μμ€ νμΌ(.java)μ΄ μ μ₯λμ΄ μκ³ , 'bin' ν΄λμλ λ°μ΄νΈ μ½λ νμΌ(.class)μ΄ μ μ₯λμ΄ μμ΅λλ€.
2. νμκΈ° κ²½λ‘ μ λ ₯μ°½μ 'cmd'λΌκ³ μ λ ₯νκ³ λͺ λ Ήν둬ννΈλ₯Ό μ€νν©λλ€.
3. νμκΈ°μμ μμΉν΄ μλ λλ ν°λ¦¬ κ²½λ‘λ‘ λͺ λ Ή ν둬ννΈμ°½μ΄ μ΄λ¦½λλ€.
4. javac λͺ λ Ήμ΄λ₯Ό μ΄μ©ν΄ μ»΄νμΌμ μ§νν©λλ€.
μ»΄νμΌ λͺ λ Ήμ΄
// JDK 1.8 μ΄μ λ²μ
// javac -d [λ°μ΄νΈ μ½λ νμΌ μ μ₯ μμΉ][μμ€ κ²½λ‘/*.java]
javac -d bin src/kr/or/junesker/*.java
// JDK 11 μ΄ν λ²μ
// javac -d [λ°μ΄νΈ μ½λ νμΌ μ μ₯ μμΉ][μμ€ κ²½λ‘/module-info.java][μμ€ κ²½λ‘/*.java]
javac -d bin src/module-info.java src/kr/or/junesker/*.java
src ν΄λ λ΄, .java νμΌμ javac λͺ λ Ήμ΄λ‘ μ»΄νμΌμ μ§νν©λλ€. κ·ΈλΌ .java νμΌμ΄ .class νμΌμΈ λ°μ΄νΈ μ½λ νμΌλ‘ λ³νλλλ° bin ν΄λ λ΄ μμ±λ©λλ€. κ·Έλ¦¬κ³ JDK λ²μ μ λ°λΌ μ»΄νμΌ λͺ λ Ήμ΄κ° μ‘°κΈμ© μ°¨μ΄κ° μμ΅λλ€.
JDK 8 μ΄μ λ²μ μ λͺ¨λμ ν΄λΉνλ 'module-info.java' νμΌμ΄ μμ΄ λͺ¨λ κΈ°μ μμ λμμ μ κ²½ μ°μ§ μμλ λμ§λ§, JDK 11 μ΄ν λ²μ λΆν°λ λͺ¨λ κΈ°μ μ(module-info.java)λ μ»΄νμΌ λμμ λ°λμ ν¬ν¨μμΌ μ»΄νμΌμ μ§νν΄μΌ νλ νΉμ§μ΄ μμ΅λλ€. κ·Έ μ΄μ λ λͺ¨λ λ΄, requires ν€μλλ‘ μμ‘΄μ± λͺ¨λμ΄ κΈ°μ λμ΄ μκΈ° λλ¬Έμ λλ€.
λ¬Όλ‘ , JDK 11 μ΄ν λ²μ μμλ JDK 8 μ΄μ λ²μ μ λͺ λ Ήμ΄λ₯Ό μ¬μ©νλλ° λ¬Έμ λ μμ΅λλ€. νμ§λ§, λͺ¨λμ μ΄μ©ν μ»΄νμΌμ΄ μλλ―λ‘ λͺ¨λμ κΈ°μ λ μμ‘΄μ± λͺ¨λμ΄ μ μ©λμ§ μμ μ μμ΅λλ€.
5. 'tree /f /a' λͺ λ Ήμ΄λ‘ μ 체μ μΈ .java νμΌμ΄ μ»΄νμΌλμλμ§ νΈλ¦¬ ννλ‘ νμΈν©λλ€.
javac λͺ λ Ήμ΄λ‘ μ»΄νμΌν ν 'tree /f /a' λͺ λ Ήμ΄λ₯Ό μ€ννλ©΄ νμ¬ μμΉν΄ μλ ν΄λ λ° νμΌμ΄ μ΄λ€ ννμ μμΉλ‘ μ‘΄μ¬νλμ§λ₯Ό νΈλ¦¬ννλ‘ νμΈν μ μμ΅λλ€. κ·Έλ¦¬κ³ bin ν΄λμ 'src' ν΄λ μμ μλ .java νμΌμ μ΄μ©ν΄ μ»΄νμΌλ κ²°κ³Όκ° λ§λ€μ΄μ Έ μλ κ²λ νμΈν μ μμ΅λλ€.
6. java λͺ λ Ήμ΄λ₯Ό μ΄μ©ν΄ μ€νν©λλ€.
μ»΄νμΌ λͺ λ Ήμ΄λ₯Ό ν΅ν΄ μ€νν΄λ³΄λ©΄ .class νμΌμ΄ μ€νλκ³ κ²°κ³Όκ° λͺ λ Ή ν둬ννΈμ°½μ μ€νλλ κ±Έ νμΈν μ μμ΅λλ€.
μ»΄νμΌ λͺ λ Ήμ΄
// JDK 1.8 μ΄μ λ²μ
// java -cp [λ°μ΄νΈ μ½λ νμΌ μ μ₯ μμΉ][ν¨ν€μ§μ΄λ¦ ... ν΄λμ€μ΄λ¦]
java -cp bin kr.or.junesker.HelloWorldClass
// JDK 11 μ΄ν λ²μ
// java -p [λ°μ΄νΈ μ½λ νμΌ μ μ₯ μμΉ] -m [λͺ¨λ/ν¨ν€μ§μ΄λ¦ ... ν΄λμ€μ΄λ¦]
java -p bin -m HelloWorld/kr.or.junesker.HelloWorldClass
λ°μ΄νΈ μ½λ μ€νλ λ§μ°¬κ°μ§λ‘ JDK 8 μ΄μ λ²μ κ³Ό JDK 11 μ΄ν λ²μ μ μ€ν λͺ λ Ήμ΄κ° λ€λ¦ λλ€. JDK 11 μ΄ν λ²μ μμ λͺ λ Ήμ΄κ° λ¬λΌμ§ μ΄μ λ μ»΄νμΌ λ¨κ³μμ μ€λͺ νλ―μ΄ λͺ¨λ κΈ°μ μλ₯Ό μ½κΈ° μν¨μ λλ€. ν΄λΉ λͺ λ Ήμ΄λ₯Ό λΆμν΄ λ³΄λ©΄ μλμ κ°μ΅λλ€.
- java
- Java μ ν리μΌμ΄μ μ μ€ννκΈ° μν Java Launcher λͺ λ Ήμ΄ - -p bin
- '--module-path bin' λͺ λ Ήμ΄μ κ°μ΅λλ€.
- λͺ¨λ κ²½λ‘λ₯Ό μ§μ ν©λλ€.
- λͺ¨λ κ²½λ‘λ Java κ°μ λ¨Έμ (JVM)μ΄ λͺ¨λμ μ°ΎμμΌ νλ μμΉμ λλ€. - -m HelloWorld/kr.or.junesker.HelloWorldClass
- '--module HelloWorld/kr.or.junesker.HelloWorldClass' λͺ λ Ήμ΄μ κ°μ΅λλ€.
- μ€νν λ©μΈ λͺ¨λκ³Ό λ©μΈ ν΄λμ€λ₯Ό μ§μ ν©λλ€.
@Junesker