패키지란? 클래스의 묶음
pakage c.javapakage
예를 들어 String 클래스의 패키지는 java.lang이며 FQCN은 java.lang.String이 된다.
int, static)자바에서 java.lang 패키지는 아주 기본적인 것들이기 때문에 import로 불러오지 않아도 자바가 알아서 java.lang의 클래스를 불러온다. 예) String, System
import java.lang.String;
import java.lang.System;
public class Main{
public static void main(String[] args){
String str = this is from java.lang.String";
System.out.println(str);
}
}
💡 모든 클래스는 반드시 하나의 패키지에 포함되어야 한다! → 엇 나는 패키지 선언 안한적 있는데? → 기본적으로 제공하는 ‘이름없는 패키지(unnamed pakage)’ 때문이다.
import 패키지명.클래스명
다른 패키지에 있는 클래스를 찾을때 사용한다.
//import 로 클래스를 선언하지 않으면 -> zmffotm dlfmadp vozlwlaud wjrdjwnjdigka
java.util.Date today = new java.util.Date();
//import 이용하면
import java.util.Date;
Date today = new Date();
클래스 이름을 생략할 수 있다!
System.out.println();
->
import static java.lang.System.out;
out.println();
클래스패스란? 말그대로 클래스를 찾기 위한 경로
JVM이 프로그램을 실행할 때, .class파일을 찾는 데 기준이 되는 파일 경로이다.
java runtime(java 또는 jre)으로 이 .class 파일에 포함된 명령을 실행하려면, 이 파일을 찾을 수 있어야 한다. .class 파일을 찾을 때, classpath에 지정된 경로를 사용한다.
classpath는 .class 파일이 포함된 디렉토리와 파일을 콜론(;)으로 구분한 목록이다.
이 classpath 를 지정하기 위한 방법이다.
윈도우즈에서 다들 한 번씩 환경변수 설정을 해보신 경험이 있을거다.
CLASSPATH=.;C:\Program Files\Java\jdk-10.0.1\lib\tools.jar
컴퓨터 시스템 변수 설정을 통해 지정할 수 있다.JVM이 시작될 때 JVM의 클래스 로더는 이 환경 변수를 호출한다. 그래서 환경 변수에 설정되어 있는 디렉토리가 호출되면 그 디렉토리에 있는 클래스들을 먼저 JVM에 로드한다. 그러므로 CLASSPATH 환경 변수에는 클래스들이 위치한 디렉토리를 등록하도록 한다.
컴퓨터 시스템 변수 설정을 통해 지정할 수 있다.

javac <options> <souce files>
컴파일러가 컴파일 하기 위해서 필요로 하는 참조할 클래스 파일들을 찾기 위해서 컴파일시 파일 경로를 지정해주는옵션
Hello.java파일이 C:\Java 디렉터리에 존재하고,
필요한 클래스 파일들이 C:\Java\Engclasses에 위치한다면,
javac -classpath C:\Java\Engclasses C:\Java\Hello.java 로 해주면 된다.
만약 참조할 클래스 파일들이
C:\Java\Engclasses,C;\Java\Korclasse, 그리고 현 디렉토리에도 존재한다면,
javac -classpath .;C:\Java\Engclasses;C;\Java\Korclasses C:\Java\Hello.java
.(현재 디렉터리); C:\Java\Engclasses(디렉터리);C;\Java\Korclasse(디렉터리);
-classpath → -cp 줄임말 가능
<출처>
https://effectivesquid.tistory.com/entry/
https://kils-log-of-develop.tistory.com/430
https://xxxelppa.tistory.com/200?category=858435