Java 공부를 하던 도중 Intellij 터미널에서 직접 자바 클래스파일을 실행했다.
그런데 다음과 같은 오류가 발생하는 것 아닌가.
오류 : 기본 클래스 ExpValidCheck을(를) 찾거나 로드할 수 없습니다.
원인 : java.lang.NoClassDefFoundError: JavaPractice/ExpValidCheck (wrong name: ExpValidCheck)
나의 디렉토리 구조와 path는 아래와 같았다.
StringPractice // Project name
+- src
+- JavaPractice
+- ExpValidCheck.java
+- StringPractice.imi
C:/Users/kim/IdeaProjects/StringPractice/out/production/StringPractice
이것을 해결하려 classpath 등을 검색했지만 원하는 답을 찾지 못했다.
이것저것 시도해보다 갑자기 다음과 같이 입력하니 실행이 된다.
C:/Users/kim/IdeaProjects/StringPractice/out/production/StringPractice
> java JavaPractice.ExpValidCheck
알고보니 별도로 패키지를 만든 경우, java 명령을 패키지의 parent 디렉토리에서 실행시켜야 한다. 단, 실행할 때 '패키지명.클래스파일명' 형태로 실행해야 한다.
>> java 명령어 인자로 클래스 이름을 전달할 경우 패키지 이름을 포함한 full class name을 전달해야 한다.(java 프로그램은 full class name을 가지고 클래스 파일들을 찾기 때문에 패키지의 루트 디렉토리에서 실행해야 한다.)
'프로그래밍 언어 > Java' 카테고리의 다른 글
[Java]toString 메서드에 대한 이해 (0) | 2018.09.11 |
---|---|
[문자열]비어있는 문자열과 NULL을 체크하는 방법 (0) | 2018.04.20 |
Java(import(임포트)) (0) | 2018.03.15 |
Java(package(패키지)) (0) | 2018.03.15 |
Java(왜 자바에서 static의 사용을 지양해야 하는가?) (5) | 2018.03.13 |