티스토리 뷰

Java

Java Command Line Tools - Compile 편

꿈이 있는 자유 2009. 1. 21. 18:24

요새는 얼마나 좋은 편집기가 많은지...Eclipse 나 NetBeans 같은 무료로 사용할 수 있는 자바 개발툴도 있고, 상용인 JBuilder 같은 툴들도 있다. 하지만, 가끔 커맨드라인에서 컴파일하고 실행하고 싶지 않은가? 여기 몇가지 커맨드라인 명령어들을 소개하고자 한다. 이 글에서는 일단 컴파일 옵션부터 살펴보자.

참고할 사이트는 아래와 같다.
http://pllab.kw.ac.kr/j2seAPIs/tooldocs/windows/javac.html
Unix/Linux : docs/technotes/tools/solaris/javac.html
Windows : docs\technotes\tools\windows\javac.html

여러분들도 잘 알다시피 컴파일 명령어는 아래와 같다.

javac [-options] [source files]

당연히 여러분은 javac.exe 에 대한 PATH 를 설정했을 것이다. 컴파일하려는 파일이 있는 디렉토리로 이동하자.

javac HelloWorld.java


너무 쉽다고? 다 안다고? 맞다 이건 누구나 다 안다. 결과는 아래의 그림처럼 HelloWorld.class 파일을 생성한다.



javac -cp ./dir/Classes/  HelloWorld.java



-cp 옵션은 -classpath 와 같다. 컴파일때 CLASSPATH 설정을 참조하거나 옵션을 이용해서 경로를 참조한다. 위의 그림의 소스를 보니 Test 클래스를 참조하고 있다. Test class의 소스를 보자.


그런데, Test.class 의 위치는 HelloWorld.java 가 있는 디렉토리에 없다. 다른 디렉토리에 있는 것이다. 현재 디렉터리 아래 dir 디렉토리 아래 Classes 디렉토리에 존재한다. 그래서 HelloWorld.java 를 컴파일할 때 참조할 클래스가 있는 디렉토리를 지정해야 한다.

이렇게 컴파일때 참조할 클래스가 있는 디렉토리의 경로를 지정하면 된다. -classpath 옵션과 동일하다.


javac -d ./dir/libs  HelloWorld.java

이 경우는 HelloWorld.java 파일을 컴파일 할 때 현재 디렉토리에 class 파일을 생성하는 것이 아니라, -d 옵션 다음에 기술돼 있는 디렉토리에 클래스 파일을 생성하는 것이다. 이 경우 Linux 경우에는 이미 그 디렉토리가 존재해야 한다. 하지만, Windows 에서는 컴파일시에 디렉토리가 생성된다. 여하튼, HelloWorld.java 를 컴파일해서 생성되는 HelloWorld.class 는 현재디렉토리 아래 dir 디렉토리 아래 libs 디렉토리에 생성되는 것이다.


javac -source 1.4 HelloWorld.java

-source 옵션은 받아들이는 원시 코드의 버젼을 지정한다. -source 뒤에는 버전을 지정하게 되는데, 1.3, 1.4, 1.5(또는 5)를 지정할 수 있다. 아래 그림을 보자. printf() 는 1.5 버전 즉 Tiger 버전에서부터 지원하는 출력메소드이다. 이 코드를 1.4 버전으로 지정하면 어떻게 될까?


아래의 그림과 같이 컴파일에러가 발생한다. 이유는 -source 로 버전을 1.4로 지정했기 때문이다.


javac -version

이 옵션은 자바 컴파일러의 버전을 출력한다.

javac -help

마지막으로 help 옵션이다. 위에 기술하지 않은 나머지 옵션에 대한 설명을 볼 수 있다.
자 여기까지 많이 사용하는 컴파일 옵션에 대해 설명했다. 다음은 Interpreter 옵션에 대해 살펴보도록 하자.

공지사항
최근에 올라온 글
최근에 달린 댓글
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
글 보관함