본문 바로가기

Programming/자바

생활코딩 자바 - 클래스패스 ??

클래스가 위치하는 경로를 지정하는 것

 

컴파일과 클래스
  • 명령프롬프트 창 이용

경로 ~~~ 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