인터넷의 수 많은 글들이 이 오류에 대해서, 클래스패스를 제대로 지정하지 않거나 혹 환경
변수 등록을 제대로 하지 않아서 발생하는 문제라고 하고 있다. 그러나 환경 변수 혹은 클래스패스를 제대로 지정해도 문제가 해결되지 않았다.
-----
이클립스를 사용하던 도중 프롬프트 상에서 직접 자바 클래스파일을 실행할 필요가 생겼다.
이클립스에서 작성한 자바 파일에 해당하는 클래스 파일은 워크스페이스폴더\프로젝트폴더
\bin\패키지명\안에 저장되므로, 프롬프트창에서 해당 디렉터리까지 이동한다음에 java
명령을 내려 클래스파일을 실행하려고 했다.
(참고로 나의 경우 이클립스에서 PMBS_Client_Test 라는 프로젝트를 사용하고 있었고, 그 안
에서 client라는 이름의 패키지를 만들고 그 안에 MainClient.java 파일을 만들어 코드를 작성
하고 있었다.)
나는 이클립스를 사용하기 때문에 jdk와 관련된 CLASSPATH나 JAVA_HOME 같은 환경변수
들을 설정하지 않았었고,이 때문에 직접 java 명령을 내려 클래스파일을 실행하는 경우에 문
제가 생기는 것이라 생각했다.
그러나 환경 변수를 설정하거나 혹은 java 명령에 직접 -classpath나 -cp 옵션을 주어도 동
일한 오류가 발생하는 것이었다.
해결방법은 간단했다.
별도로 패키지를 만들어 사용하는 경우에, java 명령은 패키지의 parent 디렉터리 위치에서
실행하되, 실행할 클래스파일의 이름은 패키지명.클래스파일명 이렇게 주어야 한다.
나의 경우 bin폴더 안에 client패키지가 있고 그 안에 MainClient.class 파일이 있으므로
패키지의 parent 디렉터리인 bin폴더 위치에서 java 명령을 실행하되, 실행할 클래스파일의
이름은 MainClient가 아니라 client.MainClient가 된다.
'Dev. Debug > 프로그램' 카테고리의 다른 글
JRE 시스템 라이브러리 관련 오류 처리 (0) | 2015.02.09 |
---|---|
[MyBatis] Mapped Statements collection does not contain value for (0) | 2015.02.07 |
ORA-00979: GROUP BY 표현식이 아닙니다 (0) | 2015.01.11 |
이클립스 디버그 모드 활용하기 (0) | 2015.01.07 |
For input string : "NaN" (0) | 2015.01.04 |