exception in thread main java.lang.NoClassDefFoundError wrong name解决方法
当不含包层次的HelloWorld.java代码(此时程序运行正常)
- public class HelloWorld{
- public static void main(String[] args) {
- System.out.println("Hello World!");
- }
- }
保存在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修改如下:
- package package test.ant;
- public class HelloWorld{
- public static void main(String[] args) {
- System.out.println("Hello World!");
- }
- }
编译时有两种方法
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解决方法的更多相关文章
- 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 ...
- 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" ...
- dom4j使用xpath报异常 Exception in thread "main" java.lang.NoClassDefFoundError: org/jaxen/NamespaceContext
Exception in thread "main" java.lang.NoClassDefFoundError: org/jaxen/NamespaceContext ...
- 在dos中运行java程序,若出现Exception in thread “main" java.lang.NoClassDefFoundError
在dos中运行java程序,若出现Exception in thread “main" java.lang.NoClassDefFoundError,可以检查一下几项: 环境变量配置: 注意 ...
- 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后,在 ...
- java 错误之:Exception in thread "main" java.lang.NoClassDefFoundError
Exception in thread "main" java.lang.NoClassDefFoundError: PointTest 环境变量的问题,把环境变量设置好了就可以了 ...
- Java 控制台执行带自定义包定义的类,出现“Exception in thread "main" java.lang.NoClassDefFoundError: ConnectSQLServer (wrong name: sine/ConnectSQLServer)”
1.先说明一下代码实现:自定义package sine, 源代码保存路径为:E:\JSP\HibernateDemo\HibernateDemoProject\src\sine\ConnectSQLS ...
- Error: Exception in thread “main” java.lang.NoClassDefFoundError错误
Error: Exception in thread “main” java.lang.NoClassDefFoundError错误 检查文件名与类名是否一致 检查程序中main方法写的是否正确: p ...
- 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 ...
随机推荐
- [置顶] T-sql sql server 设置主键约束、标示列、唯一约束、默认值、约束、创建表
----选择数据库 use ythome go ----查看表是否存在 if Exists ( select * from sysobjects where name='sys_menu' and t ...
- SVProgressHUD的使用
GitHub:https://github.com/samvermette/SVProgressHUD SVProgressHUD和MBProgressHUD效果差点儿相同,只是不须要使用协议,同一时 ...
- c++,operator=
operator=为什么值得注意? 从语法上讲,下面的程序可以编译通过,我在另一篇笔记示例里面也这样用了. class A1 { public: int operator=(int a)//参数是in ...
- 知识普及:iOS7搭载新定位技术iBeacon
摘自:http://iphone.91.com/tutorial/jcjc/131023/21619035.html 在2013年六月举行的WWDC上,作为iOS 7中最重要的新特性之一,苹果正式对外 ...
- SVN的trunk、branch、tag(二)
转——简单的对比 SVN的工作机制在某种程度上就像一颗正在生长的树: 一颗有树干和许多分支的树 分支从树干生长出来,并且细的分支从相对较粗的树干中长出 一棵树可以只有树干没有分支(但是这种情况不会持续 ...
- mysql 安装过程中的错误:my-template.ini could not be processed and written to XXX\my.ini.Error code-1
安装mysql的过程中,在最后配置mysql时,提示错误:Configuration file tmeplate E:\编程\MySQL\my-template.ini could not be pr ...
- python进阶十_正則表達式(一)
近期状态一直不太好,至于原因,怎么说呢,不好说,总之就是纠结中覆盖着纠结,心思全然不在点上,希望能够借助Python的学习以及博客的撰写来调整回来,有的时候回头想一想,假设真的是我自己的问题呢,曾经我 ...
- PHP - 子类使用父类的构造函数
/* * 子类使用父类中的构造方法. */ //父类方法 class Person { //父类中的构造方法 function __construct(){ echo '这是父类中的构造方法!'; } ...
- C# - InnerList
运行效果: 代码: using System; using System.Collections.Generic; using System.Linq; using System.Text; name ...
- 《大象UML》看书笔记2:
<大象UML>看书笔记2 抽象角度: 在为现实世界建模的时候,首先要搞清楚有多 ...