프로그래밍 언어/Java

[Java]기본 클래스를 찾거나 로드할 수 없습니다 오류 해결

benjykim 2018. 8. 8. 18:42
반응형

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을 가지고 클래스 파일들을 찾기 때문에 패키지의 루트 디렉토리에서 실행해야 한다.)



반응형