클래스가 위치하는 경로를 지정하는 것
컴파일과 클래스
- 명령프롬프트 창 이용
경로 ~~~ javac ClasspathDemo.java
=> java를 컴파일(컴퓨터가 이해할 수 있는 언어로 변경)하면서 파일 안 item, classpathdemo 클래스가 item.class, classpathdemo.class 파일로 각각 생성됨
클래스와 경로의 관계
- ClasspathDemo2.java
class Item2{
public void print() {
System.out.println("hello world");
}
}
class ClasspathDemo2 {
public static void main (String[] args) {
Item2 i1 = new Item2();
i1.print();
}
}
=> 컴파일해 각 클래스 파일 생성
=> 명령 프롬프트 => 경로>java ClasspathDemo2 = 경로>java -classpath "." ClasspathDemo2
=> hello world 출력
=> 이때 item2 클래스 타 폴더로 이동 시 classpathdemo2 클래스 오류 발생
=> 경로>java -classpath ".;lib" ClasspathDemo2 = 현재 ClasspathDemo2 실행시키기 위해 필요한 클래스파일들을 찾기 위해 해당 폴더 찾아보고 없으면 하위폴더인 lib에서도 찾아라 // . : 현재 경로 ; : 경로 분류
Could not find or load main class ClasspathDemo2 ... 왜 오류 뜨징
환경변수
- 운영체제 안에서 어디든지 접근할 수 있는 글로벌한 변수
- 자바에서 환경변수 CLASSPATH를 이용 => -classpath 옵션 사용하지 않아도 됨
- 내 PC>속성>고급시스템 설정>환경변수>새로 만들기> CLASSPATH / .;lib
=> lib폴더에 item2 클래스 있더라도 환경변수에 현재폴더와 lib폴더 경로 지정했으므로 명령 프롬프트 창에 java ClasspathDemo2 만 입력해도 불러올 수 있음
- 다른 컴퓨터, 운영체제에서는 해당 환경변수가 저장돼있지 않으므로 해당 체제에서 실행하려면 새로 지정해야 함
'Programming > 자바' 카테고리의 다른 글
생활코딩 자바 - API (0) | 2022.04.07 |
---|---|
생활코딩 자바 - 패키지 ?? (0) | 2022.04.07 |
생활코딩 자바 - overloading (0) | 2022.04.02 |
생활코딩 자바 - overriding ?? (0) | 2022.04.02 |
생활코딩 자바 - 상속과 생성자 ?? (0) | 2022.04.02 |