2014-01-23 4 views
2

나는 java를 (를) 처음 사용했습니다. HelloWorld.java라는 파일을 만들었습니다.자바 클래스를 실행할 수 없습니다. java.lang.NoClassDefFoundError :

package tp; 

/** 
* 
* @author Utilisateur 
*/ 
    public class HelloWorld { 
     public static void main(String[] args) { 
      System.out.println("HelloWorld works!"); 
    } 
} 

다음 명령을 실행하여 컴파일합니다. HelloWorld.java와 같은 폴더에있는 javac HelloWorld.java가 있습니다. 다음을 수행하여 코드를 실행했습니다. java -cp. HelloWorld.java과 같은 폴더에하여 HelloWorld는입니다.

하지만 난

Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorld (wrong nam 
e: javaTp/HelloWorld) 
    at java.lang.ClassLoader.defineClass1(Native Method) 
    at java.lang.ClassLoader.defineClass(Unknown Source) 
    at java.security.SecureClassLoader.defineClass(Unknown Source) 
    at java.net.URLClassLoader.defineClass(Unknown Source) 
    at java.net.URLClassLoader.access$100(Unknown Source) 
    at java.net.URLClassLoader$1.run(Unknown Source) 
    at java.net.URLClassLoader$1.run(Unknown Source) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(Unknown Source) 
    at java.lang.ClassLoader.loadClass(Unknown Source) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) 
    at java.lang.ClassLoader.loadClass(Unknown Source) 
    at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source) 

사람이 도움이 될 수 있습니다이 오류 메시지를 얻을? 패키지 tp를 선언하기 때문에 java tp.HelloWorld

답변

2

:

일반적으로 자바 프로젝트는 다음과 같은 미러 하나에 컴파일 중첩 된 디렉토리 구조를 가지고 있습니다.

Java는 컴파일 된 클래스 폴더의 디렉토리를 사용하여 패키지를 나타냅니다.

당신은 (기존의 클래스)이 실행 할 수 있습니다 : : 따라서 당신하여 HelloWorld 클래스는 'TP'패키지에있는 것으로 자체를 정의, 당신은 다음 중 하나를 수행 할 필요가

> java -cp . tp.HelloWorld 

을 또는 당신은 할 수 클래스 상단에서 패키지 선언을 제거하고 다시 컴파일하고 실행하십시오.

> java -cp . HelloWorld 
+0

답변 해 주셔서 감사합니다. 두 번째 해결책을 선택했다. 이제 작동합니다! – Albee

0

당신은 전체 이름을 사용해야합니다. 패키지 이름이 문제가

src/ 
    tp/ 
    HelloWorld.java 
classes/ 
    tp/ 
    HelloWorld.class 
+0

다시 시도하십시오. 그의 패키지 이름은 "tp"입니다. 또한 올바른 폴더 구조가 적절하지 않은 것 같습니다. – 64BitBob

+0

사이에 공간이 있습니다. 편집 됨. – crnlx

1

, 자바 당신의 HelloWorld.class 파일이 디렉토리 ./tp에 거주 할 것으로 예상 :

관련 문제