여기에서 이와 같은 질문을 보았습니다. 그러나 내 상황과 관련된 질문을 찾을 수 없으므로, 낡은 질문 인 경우 죄송합니다.NoClassDefFoundError Java (잘못된 이름)
~/JavaClasses/myname/utils에있는 패키지 myname.utils의 일부인 클래스 P가 있습니다. ~/JavaClasses/myname/practice에있는 다른 클래스 인쇄가 패키지의 일부로 선언되어 있지는 않습니다. 클래스 인쇄가 클래스 P를 가져옵니다.이 두 클래스 모두 ~/JavaClasses 디렉토리에서 정상적으로 컴파일됩니다. 그러나 나는 다음과 같은 오류를 얻을이
~/JavaClasses$ java myname/practice/Printing
같은 컴파일 된 클래스 인쇄를 실행하려고 할 때 : 패키지 이름을 사용하지 않기 때문에
Exception in thread "main" java.lang.NoClassDefFoundError: myname/practice/Printing (wrong name: Printing)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:482)
'java myname.practice.Printing'이어야합니다. myname.practice라는 패키지에 있다고 가정합니다. – BackSlash
P 클래스의 복사본을 가져 와서 패키지에 넣고 처음에 패키지에 포함 된 것으로 표시하기 위해'package' 문을 추가하십시오. 그러면 모든 것이 잘 작동합니다. –
이것에 대한 소스 코드가 있습니까 ?? – dcsohl