(我的收获: 是因为 编译的时候忘记在 类名前面加载 包名
例如: 正确的格式:
D:\Study\Code\Java\JavaCode\aden\src> java aden.fight )
编译时遇到下面这个问题。一直搞不懂是什么意思
Microsoft Windows [版本 6.1.7601]
版权所有 (c) 2009 Microsoft Corporation。保留所有权利。
C:\Users\Administrator>f:
F:\>cd workspace2\IM\bin\intimeMessage
F:\workspace2\IM\bin\intimeMessage>java TCPServer
Exception in thread "main" java.lang.NoClassDefFoundError: TCPServer (wrong name
: intimeMessage/TCPServer)
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)
网上找了下,才知道是没有按照包层次运行
E:\java\src>javac HelloWorld.java
此时在当前目录下输出HelloWorld.class。此时,运行不能使用上面相同的方法,使用:
E:\java\src>java HelloWorld
运行时,出现如下错误:
Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorld (wrong name: org/javaresearch/HelloWorld)
从上述错误信息你也可以看到,系统可以找到HelloWorld类(因为当前路径包含在CLASSPATH中,具体为什么会提示wrong name,有兴趣的朋友参见Java语言规范),但这个类属于org.javaresearch包。所以,你要做的就是按照上述包层次,相应的创建目录层次,把上面生成的HelloWorld.class放到E:\java\src\org\javaresearch\目录下。运行:
E:\java\src >java org.javaresearch.HelloWorld
系统打印出:
Hello World!
这儿要注意的是,不能使用java org\javaresearch\HelloWorld来运行,此时同样会出现如下错误:
Exception in thread "main" java.lang.NoClassDefFoundErrorrg\javaresearch\HelloWorld (wrong name: org/javaresearch/HelloWorld)
重新按照包层次运行。成功~~~~
Microsoft Windows [版本 6.1.7601]
版权所有 (c) 2009 Microsoft Corporation。保留所有权利。
C:\Users\Administrator>f:
F:\>cd workspace2\IM\bin
F:\workspace2\IM\bin>java intimeMessage.TCPServer
分享到:
相关推荐
出现Exception in threadmain java.lang.NoClassDefFoundError的各种可能情况.doc
java.lang.NoClassDefFoundError: de/javakaffee/kryoserializers/CurrencySerializer
NULL 博文链接:https://lyndon-lin.iteye.com/blog/856002
jdk升级jdk10后,原本jdk自带的 webservice一些包确实,引起的一系列错误解决方案
java.lang.NoClassDefFoundError: com/sun/activation/registries/LogSupport异常处理
NULL 博文链接:https://bijian1013.iteye.com/blog/2305804
jdk升级之后出现异常:java.lang.NoClassDefFoundError: javax/xml/ws/Service 1、解决方案jdk降级至1.8之前 2、由于JDK9以后,去除了javax.xml包需要引入对应的jar包 <groupId>javax.activation</groupId> ...
JavaMail的java.lang.NoClassDefFoundError: com/sun/mail/util/LineInputStream错误 原因: MyEclipse6.5的javaee.jar中的mail包与JavaMail包有冲突。 解决: 在MyEclipse目录下(D:\Program Files\MyEclipse ...
NULL 博文链接:https://chen106106.iteye.com/blog/1596135
jackson-annotations-2.10.2.jar jackson-core-2.10.2.jar jackson-databind-2.10.2.jar NoClassDefFoundError解决
该jar包解决报错java.lang.NoClassDefFoundError: org/apache/james/mime4j/MimeException,亲测可用。
主要介绍了Exception in thread main java.lang.NoClassDefFoundError错误解决方法,需要的朋友可以参考下
java解决Handler processing failed; nested exception is java.lang.NoClassDefFoundError
java.lang.NoClassDefFoundError: org/apache/commons/lang/exception/NestableRuntimeException java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory 要在java里使用json用到的jar包怎么导入...
Exception in thread "main" java.lang.NoClassDefFoundError: javax/mail/Message at com.bulktree.mail.SimpleMailTest.mail(SimpleMailTest.java:30) at com.bulktree.mail.SimpleMailTest.main(SimpleMailTest...
NULL 博文链接:https://lym6520.iteye.com/blog/310725
Exception in thread "main" java.lang.NoClassDefFoundError: org/json/JSONObject,是因为缺少java-json.jar-附件资源
NULL 博文链接:https://jaychang.iteye.com/blog/980159