[JAVA] javac 및 java 실행시 주의사항

|
이클립스를 주로 사용하다보니 javac와 java를 통해 직접적으로 어플리케이션을 실행할 일이 거의 없었다.

외부에 나갈 일이 있어 준비하던 중 javac와 java 명령어 실행시 고려해야 할 점이 여러가지 존재함을 깨닫고 까먹지 않기 위해 정리한다.

javac의 경우 컴파일하려는 해당 클래스와 관련된 클래스 혹은 jar 파일의 경로를 설정해줘야 제대로 된 컴파일이 수행된다.

그렇지 않으면 컴파일하려는 클래스에서 참조한 클래스 및 상속받은 클래스 인터페이스 등에 의해서 에러가 발생한다.




-cp (classpath) 는 참조하려는 클래스가 위치한 경로를 설정하는 옵션이다.
-d 는 생성한 클래스의 위치를 설정하는 옵션이다. 

이외에도 아주많은 javac 옵션이 존재하지만 추후에 보강토록 하겠다.


이렇게 javac를 수행하면 특별한 경우를 제외하고는 문제없이 수행된다.



그런데 java 명령어로 어플리케이션을 수행할 때 또 다른 문제가 발생할 수 있다.

갑자기 NoClassDefFoundError 에러가 발생하면서 실행이 되지 않는것이다.

이는 컴파일시에는 정상적으로 참조하였던 클래스이나, 실행시에 클래스에서 로드할 수 없을 경우 나타나는 에러이다.

이를 해결하기 위해서는 java 명령어를 실행시에도 -cp 옵션으로 클래스 파일이 존재하는 경로와 라이브러리 경로를 지정해주면 문제없이 실행된다.


-cp 옵션은 javac에서 설명한 것과 같은 기능을 한다.



 * 리눅스의 경우 java 옵션에서 클래스패스 요소를 구분하는 기호가 :(콜론) 이고, 윈도우는 ;(세미콜론) 이다.
    이 점 주의하여 사용토록 하자.

'JAVA' 카테고리의 다른 글

[JAVA] log4j의 설정 및 사용  (0) 2010.12.10
[JAVA] 문자열 비교방법  (0) 2010.12.01
And