没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
Exception in thread main
java.lang.NoClassDefFoundError错误解决方法错误解决方法
主要介绍了Exception in thread main java.lang.NoClassDefFoundError错误解决方法,需要的朋友可以参考下
错误描述错误描述
javac helloworld.java能够通过。但是java helloworld出现错误:
hadoop@xuwei-erplab:~/jarfile$ java HelloWorld
Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorld (wrong name: org/xuwei/HelloWorld)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
Could not find the main class: HelloWorld. Program will exit.
2、问题解决、问题解决
在文献1中很多人提到都是因为环境变量classpath配置错误。说是没有加上当前路径"."。但是我查看了自己的classpath为
复制代码 代码如下:
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$CLASSPATH
这表明我的classpath配置是正确的。这个时候我找到了文献2,里面提到了helloword分为带包名和不带包名两类。
3、不含包层次的、不含包层次的HelloWorld.java
public class HelloWorld {
public static void main(String args[]){
System.out.println("Hello World!");
}
}
保存在/home/hadoop/jarfile下,使用javac命令编译:
复制代码 代码如下:
$ javac HelloWorld.java
运行:
复制代码 代码如下:
$ java HelloWorld
屏幕打印出:
Hello World!
4、初学者常犯的错误、初学者常犯的错误
4.1. 运行时,带了.class后缀
如果你试图使用如下命令:(下面的命令都是假设在HelloWorld.java所在目录执行,即/home/hadoop/jarfile)
复制代码 代码如下:
java HelloWorld.class
系统会误认为你运行的是HelloWorld包下的名为class的类文件,会到系统的CLASSPATH下(一般都包括当前目录)企图寻
找 HelloWorld.class.class这样的类,这样的类当然不存在了;并且也不可能存在,因为class是关键字,不能作为一个类的名
字。所以会报如下错误信息:
Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorld/class
4.2. 文件名大小写错误
对于像Windows这样的系统,编译时可以不关心大小写(linux区分大小写)。比如编译HelloWorld.java时,也可以使用:
复制代码 代码如下:
资源评论
weixin_38632146
- 粉丝: 5
- 资源: 950
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功