-
[Java] μλ° ν¨ν€μ§λ?Android/Java 2021. 1. 19. 23:48λ°μν
- μ΄ κΈμ "μλ° μ¨λΌμΈ μ€ν°λ λ΄μ©"μ 곡λΆνμ¬ μμ±νμμ΅λλ€.
ν¨ν€μ§λ?
μλ°μμμ ν¨ν€μ§λ ν΄λμ€λ μΈν°νμ΄μ€λ€μ ν κ³³μ λͺ¨μλλ κ³³μ μλ―Έν©λλ€.
ν¨ν€μ§ λ³λ‘ μνλ κΈ°λ₯μ ꡬνν ν΄λμ€λ μΈν°νμ΄μ€λ₯Ό λͺ¨μλκΈ° λλ¬Έμ νμΌμ ν¨μ¨μ μΌλ‘ κ΄λ¦¬ν μ μμ΅λλ€.
λν, ν΄λμ€ μ΄λ¦μ΄ κ°λλΌλ λ€λ₯Έ ν¨ν€μ§μ ν΄λμ€λΌλ©΄ λ¬Έμ κ° λ°μνμ§ μμ΅λλ€.
ν¨ν€μ§ λ΄λΆμλ μλΈ ν¨ν€μ§λ μμ μ μμ΄μ μ (.)μ ν΅ν΄μ ꡬλΆν©λλ€.
ex) java.lang.String : java.lang ν¨ν€μ§ λ΄λΆμ String ν΄λμ€
package Human; public class Student { String name; int age; }
package ν¨ν€μ§λͺ μ μ λ ₯νμ¬ μ μΈν μ μμ΅λλ€.
import
μμ€μ½λ μμ± μ λ€λ₯Έ ν¨ν€μ§ μμ λ€μ΄μλ ν΄λμ€λ₯Ό μ¬μ© μμ ν¨ν€μ§ κ²½λ‘κΉμ§ μΆκ°νμ¬ ν΄λμ€λ₯Ό μ¬μ©ν΄μΌ ν©λλ€.
νμ§λ§, νλμ ν΄λμ€κ° μ΄λ¦μ΄ κΈΈμ΄μ§λ©΄ λΉν¨μ¨μ μ΄λ―λ‘ μλ°μμ import ν€μλλ₯Ό μ 곡νκ³ μμ΅λλ€.
importλ¬Έ μν μ μ»΄νμΌλ¬μκ² μμ€μ½λμ μ¬μ©λ ν΄λμ€μ ν¨ν€μ§μ λν μ 보λ₯Ό μ 곡νμ¬ ν¨ν€μ§ κ²½λ‘λ₯Ό μ μΈνκ³ ν΄λμ€ μ΄λ¦λ§ μ¬μ©ν μ μμ΅λλ€.
λ³λλ‘ μμ£Ό μ°λ ν¨ν€μ§μΈ java.lang κ°μ κ²½μ°λ importλ₯Ό μ¬μ©νμ§ μμλ ν΄λμ€λ€μ μ¬μ©ν μ μμ΅λλ€.
import Human.Student; public class Main { public static void main(String[] args) { Student student = new Student(); } }
ν΄λΉ ν΄λμ€λ§ μ°κ³ μΆλ€λ©΄ import Human.ν΄λμ€λͺ μ²λΌ μμ±νλ©΄ λ©λλ€. ν¨ν€μ§ λ΄ λͺ¨λ ν΄λμ€λ₯Ό μ¬μ©νκ³ μΆλ€λ©΄ import Human.* μ μ λ ₯νλ©΄ λ©λλ€.
Classpath
ν΄λμ€ ν¨μ€λ JVMμ΄ νλ‘κ·Έλ¨ μ€νν λ, ν΄λμ€ νμΌμ μ°ΎκΈ° μν κ²½λ‘λ₯Ό λ»νκ² λλ€.
μμ€μ½λλ₯Ό μ»΄νμΌ νλ©΄ ν΄λμ€ νμΌ(.class)μ΄ μμ±λλλ° μ΄ ν΄λμ€ νμΌμ μ€νμ νκΈ° μν΄μλ νμΌμ λν κ²½λ‘λ₯Ό μμμΌ ν©λλ€.
ν΄λμ€ ν¨μ€λ₯Ό μ€μ νκΈ° μν λ°©λ²μ λ κ°μ§λ‘ java runtimeμ -classpath μ΅μ μ μΆκ°νκ±°λ CLASSPATH νκ²½λ³μλ₯Ό μΆκ°νλ λ°©λ²μ λλ€.
-classpath μ΅μ
class Exam1{ void print(){ System.out.println("Exam1"); } } class Exam2{ void print(){ System.out.println("Exam2"); } } public class ClassPathEx { public static void main(String[] args) { Exam1 ex1 = new Exam1(); Exam2 ex2 = new Exam2(); ex1.print(); ex2.print(); } }
λ€μ μ½λλ₯Ό μμ±νκ³ javac ClaaPathEx.java λͺ λ Ήμ΄λ₯Ό μ λ ₯νμ¬ μ»΄νμΌμ μ€νν©λλ€.
μ»΄νμΌμ μ€ννλ©΄ κ° ν΄λμ€λ§λ€ ν΄λμ€ νμΌ(.class)μ μμ±νκ² λ©λλ€.
μ΄ν Exam1.classμ Exam2.class νμΌλ€μ μλ‘μ΄ ν΄λ(dir)λ₯Ό μμ±νμ¬ μ΄λμν΅λλ€.
ClassPathEx.class νμΌμ μ€νμν€κΈ° λλ©΄ Exam1.class, Exam2.class νμΌμ μ°Ύμ§ λͺ»νλ μ€λ₯κ° λ°μν©λλ€.
μ΄λ₯Ό ν΄κ²°νκΈ° μν΄ -classpath μ΅μ μ μ΄μ©νμ¬ ν΄λμ€ νμΌμ΄ μλ κ²½λ‘λ₯Ό μ§μ νλ©΄ java runtimeμ΄ μ§μ λ κ²½λ‘μμ ν΄λμ€ νμΌμ μ°Ύκ² λ©λλ€.- java -classpath ".:κ²½λ‘" ν΄λμ€νμΌλͺ μ μ λ ₯νλ©΄ ν΄λμ€νμΌμ΄ μλ κ²½λ‘λ₯Ό μ§μ ν ν μ€ννκ² λλ κ²μ λλ€. μ¬λ°λ₯Έ μΆλ ₯μ΄ λνλλ κ²μ νμΈν μ μμ΅λλ€.
- Unixκ³μ΄μμλ java -classpath ".:κ²½λ‘" ν΄λμ€νμΌλͺ , μλμ°μμλ java -classpath ".;κ²½λ‘" ν΄λμ€νμΌλͺ μ λλ€.
CLASSPATH νκ²½λ³μ
-classpath μ΅μ μ μΌμΌμ΄ μ£Όλ κ²μ λ²κ±°λ‘μ΄ μμ μ΄λ―λ‘ νκ²½λ³μμ μ μ₯νμ¬ μκ³ λ₯Ό μ€μΌ μ μμ΅λλ€.
νκ²½λ³μλ μ΄μ체μ μ μ§μ ν λ³μλ‘ νλ‘μΈμ€κ° μ»΄ν¨ν° λμνλ λ°©μμ μν₯μ μ£Όλ λ³μμ λλ€.
νκ²½λ³μλ‘ μ§μ ν λ³μ(CLASSPATH, PATH..) λ€μ μλ° κ°μλ¨Έμ κ³Ό κ°μ μ΄ν리μΌμ΄μ μ΄ μ°Έμ‘°νμ¬ λμν©λλ€.
macosμμλ ~/.bash_profile νμΌμ΄ μ§μμ μμ€ν μ€μ κ³Ό κ΄λ ¨λ νμΌμ λλ€. vi λͺ λ Ήμ΄λ‘ ~/.bash_profileμ CLASSPATHλ₯Ό λ±λ‘ν©λλ€.
Exam1.class, Exam2.classκ° λ€λ₯Έ κ²½λ‘μ μμ΄λ νκ²½λ³μλ₯Ό ν΅ν΄ μνλ μΆλ ₯κ²°κ³Όλ₯Ό μ»μ μ μμ΅λλ€.
μ κ·Όμ§μμ
κ°μ²΄μ§ν₯ νλ‘κ·Έλλ°μ νΉμ§μΌλ‘ μΊ‘μνλ μ 보 μλμ΄ μμ΅λλ€.
ν΄λμ€λ₯Ό μμ±νμ¬ μΊ‘μνλ₯Ό λ§μ‘±μν¨ ν κ°μ²΄μ λν ꡬ체μ μΈ μ 보 λ ΈμΆ μ¬λΆλ μ κ·Όμ§μμλ₯Ό μ΄μ©νμ¬ κ²°μ ν μ μμ΅λλ€.
μ κ·Όμ§μμλ₯Ό μ΄μ©ν¨μΌλ‘μ¨ μ 보 μλμ λ§μ‘±μν¬ μ μμ΅λλ€.
λ°μν'Android > Java' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Java] μλ° μμΈμ²λ¦¬ (0) 2021.02.01 [Java] μλ° μΈν°νμ΄μ€(Interface) μ¬μ© (0) 2021.01.24 [Java] μΆμ ν΄λμ€, Dispatch, final, Object ν΄λμ€ (0) 2021.01.18 [Java] μλ° ν΄λμ€ μμ, λ©μλ μ€λ²λΌμ΄λ© (0) 2021.01.18 [Java] μλ° ν΄λμ€, κ°μ²΄ (0) 2021.01.18