이렇게 해서 패키지가 무엇인가에 대해서 알아봤다. 그럼 이클립스 없이 패키지를 사용하는 방법을 알아보자.
자 손으로 컴파일을 해보자. 개발도구 없이 코딩하는 경우는 거의 없다. 그러므로 혹시 이해가 안 되면 나중에 다시 봐도 되는 부분이다. 하지만 언젠가는 알고 있어야 하는 부분이다. 이클립스 내부에서 어떤 일이 일어나는지 궁금하지 않은가?
프로젝트 디렉터리의 구성을 살펴보자.
위와 같이 구분한 이유는 관리의 편의성을 위해서다. 그럼 src에 소스코드를 만들고 그것을 컴파일 한 결과를 bin 하위에 위치하도록 작업해보자.
우선 우리가 컴파일 하려는 클래스는 아래와 같은 패키지의 소속이다.
package org.opentutorials.javatutorials.packages.example3;
패키지는 디렉터리와 대응관계에 있다. 따라서 패키지의 구조대로 src 하위에 디렉터리를 만들어보자.
packages 디렉터리에 파일 Selfcompile.java를 만든다. 파일의 내용은 아래와 같다.
package org.opentutorials.javatutorials.packages.example3; public class Selfcompile{}
이제 컴파일을 해보자. 컴파일은 아래와 같이 프로젝트 디렉토리에서 진행하자.
컴파일을 하려면 콘솔을 실행시켜야 한다. 콘솔을 프로젝트 디렉토리로 이동한다. 필자의 경우 아래와 같다.
이제 컴파일을 하자.
javac src/org/opentutorials/javatutorials/packages/example3/*.java
위의 명령은 현재 디렉토리를 기준으로 src/org/opentutorials/javatutorials/packages/example3/ 하위에 있는 모든 자바 파일을 컴파일한다. 컴파일 한 결과는 src/org/opentutorials/javatutorials/packages/example3/ 에 저장된다. 특별한 옵션을 주지 않으면 소스코드와 클래스 파일이 동일한 디렉토리에 위치하게 된다.
우리가 원하는 것은 클래스 파일이 bin 하위에 위치하도록 하는 것이다. 아래와 같이 컴파일 명령을 바꾸면 된다.
javac src/org/opentutorials/javatutorials/packages/example3/*.java -d bin
-d bin은 컴파일된 결과를 bin 디렉토리 하위에 위치시킨다는 의미다. 자바 컴파일러는 자동으로 클래스의 패키지에 해당하는 디렉토리를 생성해준다.