저는 Ubuntu 12.04를 사용하고 있으며 명령 줄에서 Java 프로그램을 실행하려고합니다.실행 파일을 실행할 때 java.lang.NoClassDefFoundError가 발생했습니다.
그것은 유명한 프로그래밍 면접 책에서 프로그램, 코딩 인터뷰를 크래킹, 디렉토리 및 자바 파일의 구조입니다이
여기 https://github.com/gaylemcd/ctci/tree/master/java
에서 볼 수있다, 나는 Chapter 2/Question2_5/QuestionB.java
를 실행, 그리고 있어요 CtCILibrary 디렉토리에 LinkedListNode.java
클래스를 사용하고, 또한 내가 컴파일 명령
Chapter 2/Question2_5
디렉토리로 가서, 컴파일
Chapter 2/Question2_5/PartialSum.java
필요
javac -cp .:../../CtCiLibrary/CtCILibrary/LinkedListNode.java ./PartialSum.java QuestionB.java
(컴파일 명령을 알아 내기까지 시간이 걸렸습니다.) QuestionB.class 파일을 컴파일했습니다.
나는java QuestionB
를 실행하지만, 내가 구글에 고개를하지만, 그들 중 누구도 나를 위해 일하지 않을 때 많은 참조가 있었다
Exception in thread "main" java.lang.NoClassDefFoundError: QuestionB (wrong name: Question2_5/QuestionB)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:634)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:277)
at java.net.URLClassLoader.access$000(URLClassLoader.java:73)
at java.net.URLClassLoader$1.run(URLClassLoader.java:212)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
Could not find the main class: QuestionB. Program will exit.
오류를 발생합니다.
누구나 이걸 어떻게 실행할 수 있습니까?
NoClassDefFoundError는 클래스 경로가 손상되었음을 의미합니다. –
그것이 내가 Google을 찾았을 때 읽은 것입니다. 내가 잘못하고있는 곳을 지정할 수 있다면 많은 도움이 될 것입니다. 커맨드 라인에서 자바를 처음 실행하는 것이므로 혼란 스럽습니다. (나는 커맨드 라인/vim에서만 C++을 사용했다.) 고맙습니다. – user2418202
https://github.com/gaylemcd/ctci/tree/master/java/Chapter%202/Question2_5를보고 해당 디렉토리에서 QuestionB.java를 컴파일하고 실행하는 방법을 알려주시겠습니까? 최상위 디렉토리를 체크 아웃 했으므로 디렉토리 구조가 정확히 동일합니다 – user2418202