当不含包层次的HelloWorld.java代码(此时程序运行正常)

  1. public class HelloWorld{
  2. public static void main(String[] args)    {
  3. System.out.println("Hello World!");
  4. }
  5. }

  保存在E:\java\src下,使用javac命令编译:

  E:\java\src>javac HelloWorld.java

  运行:

  E:\java\src>java HelloWorld

  屏幕打印出:

  Hello World!

  以下是初学者常犯的错误,会导致出现exception in thread main java.lang.NoClassDefFoundError wrong name错误:

  1. 运行时,带了.class后缀

  如果你试图使用如下命令:

  E:\java\src>java HelloWorld.class

  系统会误认为你运行的是HelloWorld包下的名为class的类文件,会到系统的CLASSPATH下(一般都包括当前目录)企图寻找
HelloWorld.class.class这样的类,这样的类当然不存在了;并且也不可能存在,因为class是关键字,不能作为一个类的名字。所以
会报如下错误信息:

  Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorld/class

  2. 文件名大小写错误

  对于像Windows这样的系统,编译时可以不关心大小写。比如编译HelloWorld.java时,也可以使用:

  E:\java\src>javac helloworld.java

  也可以编译通过,但产生的类文件仍然是和源文件相符的:HelloWorld.class。

  但在运行时一定要注意大小写,比如试图使用如下命令运行:

  E:\java\src>java helloworld

  将报类似于1中的错误:

  Exception in thread "main" java.lang.NoClassDefFoundError: helloworld (wrong name: HelloWorld)

  3.包含包层次的HelloWorld.java

  比如上面的HelloWorld.java修改如下:

  1. package package test.ant;
  2. public class HelloWorld{
  3. public static void main(String[] args)    {
  4. System.out.println("Hello World!");
  5. }
  6. }

  编译时有两种方法

  1. 直接编译

  E:\java\src>javac HelloWorld.java

  此时在当前目录下输出HelloWorld.class。此时,运行不能使用上面相同的方法,使用:

  E:\java\src>java HelloWorld

  运行时,出现如下错误:

  Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorld (wrong name: test.ant/HelloWorld)

  从上述错误信息
你也可以看到,系统可以找到HelloWorld类(因为当前路径包含在CLASSPATH中),但这个类属于test.ant包。所以,你要做的就是按
照上述包层次,相应的创建目录层次,把上面生成的HelloWorld.class放到E:\java\src\test\ant\目录下。运行:

  E:\java\src >java test.ant.HelloWorld

  系统打印出:

  Hello World!

  这里要注意的是,不能使用java test\ant\HelloWorld来运行,此时同样会出现如下错误:

  Exception in thread "main" java.lang.NoClassDefFoundError:test\ant\HelloWorld (wrong name: test/ant/HelloWorld)

exception in thread main java.lang.NoClassDefFoundError wrong name解决方法的更多相关文章

  1. Exception in thread "main" java.lang.NoClassDefFoundError: antlr/ANTLRException 解决方法

    转自:https://blog.csdn.net/gengkunpeng/article/details/6225286?utm_source=blogxgwz4 1. struts2.3.15 hi ...

  2. Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory

    学习架构探险,从零开始写Java Web框架时,在学习到springAOP时遇到一个异常: "C:\Program Files\Java\jdk1.7.0_40\bin\java" ...

  3. dom4j使用xpath报异常 Exception in thread "main" java.lang.NoClassDefFoundError: org/jaxen/NamespaceContext

    Exception in thread "main" java.lang.NoClassDefFoundError: org/jaxen/NamespaceContext      ...

  4. 在dos中运行java程序,若出现Exception in thread “main" java.lang.NoClassDefFoundError

    在dos中运行java程序,若出现Exception in thread “main" java.lang.NoClassDefFoundError,可以检查一下几项: 环境变量配置: 注意 ...

  5. MyEclipse8.5集成Tomcat7时的启动错误:Exception in thread “main” java.lang.NoClassDefFoundError org/apache/commons/logging/LogFactory

    今天,安装Tomcat7.0.21后,单独用D:\apache-tomcat-7.0.21\bin\startup.bat启动web服务正常.但在MyEclipse8.5中集成配置Tomcat7后,在 ...

  6. java 错误之:Exception in thread "main" java.lang.NoClassDefFoundError

    Exception in thread "main" java.lang.NoClassDefFoundError: PointTest 环境变量的问题,把环境变量设置好了就可以了 ...

  7. Java 控制台执行带自定义包定义的类,出现“Exception in thread "main" java.lang.NoClassDefFoundError: ConnectSQLServer (wrong name: sine/ConnectSQLServer)”

    1.先说明一下代码实现:自定义package sine, 源代码保存路径为:E:\JSP\HibernateDemo\HibernateDemoProject\src\sine\ConnectSQLS ...

  8. Error: Exception in thread “main” java.lang.NoClassDefFoundError错误

    Error: Exception in thread “main” java.lang.NoClassDefFoundError错误 检查文件名与类名是否一致 检查程序中main方法写的是否正确: p ...

  9. Exception in thread "main" java.lang.NoClassDefFoundError: UDP_Receive (wrong na me: com/ray/net/UDP_Receive)

    一.事件经过 今晚学习java网络编程,在eclipse中写了两个个java文件,一个发送端UDP_Send2.java,一个接收端UDP_Receive.java.实现发送端键盘录入信息,通过UDP ...

随机推荐

  1. linux BC命令行计算器

    1. 基本使用: $ bc <<< 5*4 20 $ bc <<< 5+4 9 $ bc <<< 5-4 1 或者 $ echo "5* ...

  2. 再造 “手机QQ” 侧滑菜单(三)——视图联动

    代码示例:https://github.com/johnlui/SwiftSideslipLikeQQ 本 文中,我们将一起使用 UINavigationController 来管理主视图,并实现点击 ...

  3. jQuery 快速结束当前动画

    当需要快速结束一个当前正在执行的jquery 动画时(还没执行完成),如 fadeOut(),可以在执行当前动画的对象上执行 stop(true);方法 如: <script type=&quo ...

  4. shell字符串替换

  5. IntelliJ IDEA 开发swing(二)

    原文:idea开发swing(二) 闲话少说,书接idea开发swing(一). 程序编译完成后,需要打包发布,如果有fat_jar的同学可以通过该插件打包,这里是使用ant来打包,步骤如下: 一.编 ...

  6. JAVA_2Lesson

    package test; public class abc { public static void main(String[] arg) { int[][] xx=new int[3][]; xx ...

  7. 【新提醒】N820 N821 android 4.2 V1.1版 - 大V综合交流区 - 360官方论坛

    http://bbs.360safe.com/forum.php?mod=viewthread&tid=3088815&extra=page%3D1%26filter%3Dtypeid ...

  8. php 使用curl发起https请求

    今天一个同事反映,使用curl发起https请求的时候报错:“SSL certificate problem, verify that the CA cert is OK. Details: erro ...

  9. 使用内容提供者和xml备份联系人

    1.通过内容提供者获取联系人信息 package com.ithaimazyh.readcontact; import java.util.ArrayList; import java.util.Li ...

  10. 3890: [Usaco2015 Jan]Meeting Time( dp )

    简单的拓扑图dp.. A(i, j), B(i, j) 表示从点 i 长度为 j 的两种路径是否存在. 用bitset就行了 时间复杂度O(m) --------------------------- ...