생활코딩 자바 강의를 듣고 적는 글입니다.
자바 프로그램을 실행할 때 클래스패스라는 옵션으로 클래스의 경로를 지정해 클래스를 로드할 수 있다.
예를 들어 클래스1과 클래스2가 있다고 하자. 클래스1은 클래스2의 객체를 생성해 프로그램을 실행한다. 그런데 클래스2가 클래스1과 다른 디렉토리에 있다면 어떻할까?
- 같은 디렉토리로 이동한다.
- 클래스 패스 옵션을 준다.
1번 방법은 쉽다. 2번 방법을 알아보자.
(이미 클래스파일로 컴파일 됐다는 가정 하에)
java -classpath "경로후보1:경로후보2:경로후보3" 클래스1.class
==> 클래스1을 실행하는데 필요한 클래스 파일을 경로후보1, 경로후보2, 경로후보3에서 찾아라! 라는 뜻이다. 콜론은 경로 구분자이다. 당연히 클래스1의 경로도 경로 후보에 넣어야 실행할 수 있다.
예를 들어 클래스2가 lib 디렉토리 안에 있다면
java -classpath ".:lib" 클래스1.class --> 이렇게 할 수 있다.
운영체제에서 환경변수를 지정해 경로값을 넣을 수도 있다. 그렇게 되면 classpath 옵션을 사용하지 않아도 실행할 수 있다. 그러나 이렇게 실행하게 되면 다른 컴퓨터에서 자바를 실행할 때 오류가 날 수도 있다.(이식성의 문제)
'study > java' 카테고리의 다른 글
자바/JAVA enum 열거 (0) | 2021.01.29 |
---|---|
자바/JAVA 자신을 호출(생성)하는 객체 (2) | 2021.01.29 |
자바/JAVA 제네릭 (0) | 2021.01.26 |
자바/Java 논리, 비트 연산자, 이름을 갖는 반복문 (0) | 2021.01.22 |
자바/Java 컬렉션 강의 정리(2) (0) | 2021.01.22 |