티스토리 뷰

Java

CLASSPATH 설정하기-2

꿈이 있는 자유 2009. 1. 12. 12:06

자 이번에는, package 를 이용해 보자. 아래의 그림처럼 package 를 지정했다. package는 항상 자바소스 코드의 맨 위에 위치해야 하는거 알죠? 물론, 주석빼고... 컴파일하자. 일단 저장은 C:\JavaRoom 에 했다. 컴파일한다음, 파일을 이동하면 되니까. 
    javac.exe  -d  C:\Temp  Test.java


컴파일이 끝나면 package 키워드는 -d 컴파일 옵션 뒤의 지정된 디렉토리를 시작기점으로 해서 package 에 지정된 경로를 따라 클래스 파일을 위치하게 한다. 지정된 경로에 있는 디렉토리가 없으면 생성하고 이미 생성돼있으면, 그 경로를 따라 클래스를 생성하게 된다. 아래 그림처럼 package classlibraries.first 에 의해서 C:\Temp 를 경로 시작지점으로 해서, C:\Temp\classlibraries\first\Test.class가 생성됐다.

이제 ClassPathDemo.java 를 컴파일하자. 어라! 에러가 발생하네...일단 Test.java 소스 코드를 다른 폴더로 이동시켜놓고 다시 컴파일하자.

다시 컴파일했더니, 또 에러가 발생했다. 하지만 위의 그림과 다른 메시지다. 역시 Test.java 소스파일이 문제다. 항상 동일폴더에 있으면 안되는 거다.


ClassPathDemo.java 에 들어가서 위치를 정확하게 지정한 import 문을 기술했다. 내가 참조해야할 클래스의 경로를 지정한다. package 와 다른 것은, package 는 경로를 디렉토리의 이름으로 기술하는 것이고, import 는 해당 디렉토리의 클래스의 이름을 지정하거나, 그 하위의 모든 클래스(*) 로 기술한다는 것이다. 즉 package는 디렉토리의 이름으로, import 는 갖고 올 디렉토리 이하 클래스를 기술한다는 차이다.
그래서 C:\Temp\classlibraries\first\Test.class 를 import 하라고 지정했다.

파일을 저장하고 다시 컴파일하자. 컴파일 성공...

역시 실행도 성공...아하!  소스에서 package 로 하위 디렉토리를 지정하면, 레퍼런스할 때 import 를 통해 역시 경로를 지정해야 한다는 것이다.

그럼, 매번 컴파일하고 실행할 때마다, 이렇게 -classpath 옵션을 지정해야 한다는 것인가? 아! 이건 너무 불편하다. 그래서 환경설정 설정시 CLASSPATH 를 넣는 거구나!!!
내 컴퓨터의 속성에 가서 고급탭의 환경변수로 들어가서 아래의 그림과 같이 [새 시스템 변수]를 등록하자. 역시 주의 할 점은 2가지...하나는, Windows 플랫폼에서는 CLASSPATH 의 구분자는 ';' 이고, Linux/Unix 에서의 구분자는 ':' 라는 것. 둘째는, 반드시 현재 디렉토리(.)를 맨 앞에 기술해야 한다는 것.
이왕 기술하는 김에 %JAVA_HOME%\lib\tools.jar 을 기술하자. 이게 진짜 SUN 에서 만든 클래스들이니까... 마지막으로 현재 실험하고 있는 C:\Temp 도 넣어주자. [확인] 버튼 클릭...


원래 환경변수의 설정은 재 부팅해야 하지만, 도스모드에서 set 명령을 통해 설정하자.

CLASSPATH 환경변수 설정을 했더니 컴파일할 때마다, 실행시 마다 별도로 -classpath 를 지정하지 않아도 된다. 아 ! 편하다....그래서 CLASSPATH 설정하는 구나...
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함