
๐ ํจํค์ง
ํจํค์ง(package)๋, ํด๋์ค ๋ฌถ์์ด๋ค.
ํจํค์ง์๋ ํด๋์ค ๋๋ ์ธํฐํ์ด์ค๋ฅผ ํฌํจ์ํฌ ์ ์์ผ๋ฉฐ, ์๋ก ๊ด๋ จ๋ ํด๋์ค๋ค๋ผ๋ฆฌ ๊ทธ๋ฃน ๋จ์๋ก ๋ฌถ์ด ๋์์ผ๋ก์จ ํด๋์ค๋ฅผ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ ์ ์๋ค.
๊ฐ์ ์ด๋ฆ์ ํด๋์ค์ผ ์ง๋ผ๋ ์๋ก ๋ค๋ฅธ ํจํค์ง์ ์กด์ฌํ๋ ๊ฒ์ด ๊ฐ๋ฅํด์,
๋ค๋ฅธ ๊ฐ๋ฐ์๊ฐ ๊ฐ๋ฐํ ํด๋์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ํด๋์ค ์ด๋ฆ๊ณผ ์ถฉ๋ํ๋ ๊ฒ์ ํผํ ์ ์๋ค.
ํด๋์ค๊ฐ ๋ฌผ๋ฆฌ์ ์ผ๋ก ํ๋์ ํด๋์คํ์ผ(*.class
)์ธ ๊ฒ๊ณผ ๊ฐ์ด ํจํค์ง๋ ๋ฌผ๋ฆฌ์ ์ผ๋ก ํ๋์ ๋๋ ํ ๋ฆฌ์ด๋ค.
์๋ฅผ ๋ค์ด, java.lang.String
ํด๋์ค๋ ๋๋ ํ ๋ฆฌ java
์ ์๋ธ ๋๋ ํ ๋ฆฌ์ธ lang
์ ์ํ String.class
ํ์ผ์ด๋ค.
๐งก ํ๋์ ์์คํ์ผ์๋ ์ฒซ ๋ฒ์งธ ๋ฌธ์ฅ์ผ๋ก ๋จ ํ๋ฒ์ ํจํค์ง ์ ์ธ๋ง์ ํ์ฉํ๋ค.
๐งก ๋ชจ๋ ํด๋์ค๋ ๋ฐ๋์ ํ๋์ ํจํค์ง์ ์ํด์ผํ๋ค.
๐งก ํจํค์ง๋ ์ (.)์ ๊ตฌ๋ถ์๋ก ํ์ฌ ๊ณ์ธต๊ตฌ์กฐ๋ก ๊ตฌ์ฑํ ์ ์๋ค.
๐งก ํจํค์ง๋ ๋ฌผ๋ฆฌ์ ์ผ๋ก ํด๋์ค ํ์ผ(.class)์ ํฌํจํ๋ ํ๋์ ๋๋ ํ ๋ฆฌ์ด๋ค.
ํจํค์ง์ ์ ์ธ
ํด๋์ค๋ ์ธํฐํ์ด์ค์ ์์คํ์ผ(.java)
์ ๋งจ ์์ ๋ค์๊ณผ ๊ฐ์ด ํ ์ค๋ง ์ ์ด์ฃผ๋ฉด ๋๋ค.
package ํจํค์ง๋ช
;
ํด๋์ค๋ช ๊ณผ ์ฝ๊ฒ ๊ตฌ๋ถํ๊ธฐ ์ํด์ ์๋ฌธ์๋ก ํ๋ ๊ฒ์ ์์น์ผ๋ก ํ๊ณ ์๋ค.
๋ชจ๋ ํด๋์ค๋ ๋ฐ๋์ ํ๋์ ํจํค์ง์ ํฌํจ๋์ด์ผํ๋ค.
์์คํ์ผ์ ์์ ์ด ์ํ ํจํค์ง๋ฅผ ์ง์ ํ์ง ์๋ ๋ชจ๋ ํด๋์ค๋ ์๋์ ์ผ๋ก ์ด๋ฆ ์๋ ํจํค์ง์ ์ํ๊ฒ ๋๋ค.
๐ import ๋ฌธ
import๋ฌธ์ ์ปดํ์ผ๋ฌ์๊ฒ ์์คํ์ผ์ ์ฌ์ฉ๋ ํด๋์ค์ ํจํค์ง์ ๋ํ ์ ๋ณด๋ฅผ ์ ๊ณตํ๋ค.
import ๋ฌธ์ ์ ์ธ
๋ชจ๋ ์์คํ์ผ(*.java
)์์ import ๋ฌธ์ package ๋ฌธ ๋ค์์, ๊ทธ๋ฆฌ๊ณ ํด๋์ค ์ ์ธ๋ฌธ ์ด์ ์ ์์นํด์ผํ๋ค.
import๋ฌธ์ package ๋ฌธ๊ณผ ๋ฌ๋ฆฌ ํ ์์คํ์ผ์ ์ฌ๋ฌ ๋ฒ ์ ์ธํ ์ ์๋ค.
import ํจํค์ง๋ช
.ํด๋์ค๋ช
;
or
import ํจํค์ง๋ช
.*; // ์ง์ ๋ ํจํค์ง์ ์ํ๋ ๋ชจ๋ ํด๋์ค๋ฅผ ํจํค์ง๋ช
์์ด ์ฌ์ฉํ ์ ์๋ค.
static import ๋ฌธ
import ๋ฌธ์ ์ฌ์ฉํ๋ฉด ํด๋์ค์ ํจํค์ง๋ช ์ ์๋ตํ ์ ์๋ ๊ฒ๊ณผ ๊ฐ์ด static import ๋ฌธ์ ์ฌ์ฉํ๋ฉด static ๋ฉค๋ฒ๋ฅผ ํธ์ถํ ๋ ํด๋์ค ์ด๋ฆ์ ์๋ตํ ์ ์๋ค.
import static java.lang.Integer.*;
import static java.lang.Math.random;
import static java.lang.System.out;
out.println(random());
// System.out.println(Math.random());
๐ CLASSPATH
ํด๋์คํจ์ค๋ ์ปดํ์ผ๋ฌ(javac.exe
)๋ JVM๋ฑ์ด ํด๋์ค ์์น๋ฅผ ์ฐพ๋ ๋ฐ ์ฌ์ฉ๋๋ ๊ฒฝ๋ก์ด๋ค.
๐ข J2JDK ๋ฒ์ ๋ถํฐ๋ /jre/lib/ext ํด๋์ ํ์ํ ํด๋์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค์ ๋ณต์ฌํด๋์ผ๋ฉด ์ฌ์ฉ ๊ฐ๋ฅํ์ฌ ํน๋ณํ ๊ฒฝ์ฐ๊ฐ ์๋๋ฉด ์ค์ ํ์ง ์๋๋ค.
JAVA ์คํฐ๋ 1์ฃผ์ฐจ์์ ๊ณต๋ถํ๋ JVM ๋์๊ณผ์ ์ ๋ค์ ์๊ธฐ์์ผ๋ณด์.javac
๋ก .java
ํ์ผ์ .class
ํ์ผ๋ก ์ปดํ์ผ ์์ผ์คฌ๊ณ ,java
๋ก ํด๋น ํด๋์ค ํ์ผ์ ์คํ์์ผ ์คฌ๋ค.
์ด ๋, ์๋ฐ๋ ์ด ํด๋์ค ํ์ผ์ ์ฐพ์ ์ ์์ด์ผ ํ๋๋ฐ, ์ด๋ classpath ๋ฅผ ์ฌ์ฉํ๋ค.
ํด๋์ค ํจ์ค๋ฅผ ์ง์ ํ๋ ๋ฐฉ๋ฒ
- CLASSPATH ํ๊ฒฝ ๋ณ์ ์ฌ์ฉ
- java runtime์
-classpath
์ต์ ์ฌ์ฉ
CLASSPATH ํ๊ฒฝ ๋ณ์ ์ฌ์ฉ

์๋์ฐ์์
์ ์ดํ - ์์คํ
- ๊ณ ๊ธ ์์คํ
์ค์ - ํ๊ฒฝ๋ณ์ - ์๋ก๋ง๋ค๊ธฐ์์
CLASSPATH๋ผ๊ณ ๋ณ์ ์ด๋ฆ์ ์ง์ ํ๊ณ
๋ณ์ ๊ฐ์ JAVA_HOME ์๋์ lib ํด๋๋ก ์ง์ ํด์ฃผ๋ฉด ๋๋ค.
classpath๊ฐ ๋ฐ๋ฅด๊ฒ ์ค์ ๋์๋์ง ํ์ธํ๋ ค๋ฉด, ์ฝ๋ฉ๋ ์ฐฝ์์echo %classpath%
๋ผ๊ณ ์ณ๋ณด๋ฉด ๋๋ค.
java runtime์ -classpath ์ต์ ์ฌ์ฉ
-classpath
๋ ์ปดํ์ผ๋ฌ๊ฐ ์ปดํ์ผ ํ๊ธฐ ์ํด์ ํ์๋ก ํ๋ ์ฐธ์กฐํ ํด๋์ค ํ์ผ๋ค์ ์ฐพ๊ธฐ ์ํด์ ์ปดํ์ผ ์ ํ์ผ ๊ฒฝ๋ก๋ฅผ ์ง์ ํด์ฃผ๋ ์ต์
์ด๋ค. -cp
๋ผ๊ณ ์จ์ค๋ ๋๋ค.
์๋ฅผ ๋ค์ด,Hello.java
ํ์ผ์ด C:\Java
๋๋ ํ ๋ฆฌ์ ์กด์ฌํ๊ณ ,
ํ์ํ ํด๋์ค ํ์ผ๋ค์ด C:\Java\Engclasses
์ ์์นํ๋ค๋ฉดjavac -classpath CL\Java\EngClasses C:\Java\Hello.java
๋ก ํด์ฃผ๋ฉด ๋๋ค.
๋ง์ฝ ์ฐธ์กฐํ ํด๋์ค ํ์ผ๋ค์ด ๊ทธ ์ธ์ ๋ค๋ฅธ ๋๋ ํฐ๋ฆฌ, ๊ทธ๋ฆฌ๊ณ ํ ๋๋ ํ ๋ฆฌ์๋ ์กด์ฌํ๋ค๋ฉด,javac -classpath .;C:\Java\Engclasses;C;\Java\Korclasses C:\Java\Hello.java
๋ก ํด์ฃผ๋ฉด ๋๋ค.
์์ ๊ฐ์ด ์ธ๋ฏธ์ฝ๋ก ์ผ๋ก ๊ตฌ๋ถํด์ค ์ ์๋ค.
(.
์ด ํ ๋๋ ํ ๋ฆฌ, ..
์ ํ ๋๋ ํ ๋ฆฌ์์ ์์ ๋๋ ํ ๋ฆฌ๋ฅผ ์๋ฏธํ๋ค.)
https://kils-log-of-develop.tistory.com/430#%ED%81%B4%EB%9E%98%EC%8A%A4%ED%8C%A8%EC%8A%A4
์๋ฐ์ ์ ์ (๋์ฐ์ถํ, ๋จ๊ถ ์ฑ ์ )
'JAVA > WhiteShip Java Live Study' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JAVA] ์์์ด๋? (์ถ์ํด๋์ค, super, final, ์ค๋ฒ๋ผ์ด๋ฉ...) (0) | 2021.06.07 |
---|---|
[JAVA] ํด๋์ค๋? (ํด๋์ค, ๊ฐ์ฒด, new, ๋ฉ์๋, ์์ฑ์, this...) (0) | 2021.05.28 |
[JAVA] ์ ์ด๋ฌธ (2) | 2021.05.23 |
[JAVA] ์ฐ์ฐ์ (ํ์ดํ, ์ผํญ, switch...) (0) | 2021.05.17 |
[JAVA] ์๋ฐ ๋ฐ์ดํฐ ํ์ , ๋ณ์ ๊ทธ๋ฆฌ๊ณ ๋ฐฐ์ด (0) | 2021.05.17 |