请教:Exception in thread "main" java.lang.NoClassDefFoundError:...!!

java0135012 2009-03-09 04:54:08
运行时总报Exception in thread "main" java.lang.NoClassDefFoundError:...!!

环境变量设置如下:

classpath:.;C:\Java\jdk1.5.0_06\lib\tools.jar;C:\Java\jdk1.5.0_06\bin;%JAVA_HOME%/lib;

path:%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\Java\jdk1.5.0_06\bin;%PATH%

JAVAHOME:C:\Java\jdk1.5.0_06
...全文
158 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
java0135012 2009-03-16
  • 打赏
  • 举报
回复
再次顶起!
上面说过的方法就 不要重复了
一条小狗 2009-03-14
  • 打赏
  • 举报
回复
这个问题就是CLASSPATH的原因,改成这样就可以了
CLASSPATH=.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar
fortin1001 2009-03-11
  • 打赏
  • 举报
回复
JAVAHOME ----> JAVA_HOME
java0135012 2009-03-11
  • 打赏
  • 举报
回复
顶起!
岭南笑 2009-03-10
  • 打赏
  • 举报
回复
。。。我觉得是因为LZ是运行整个工程时出的错,楼主试着只运行该文件试试!
ZiSheng 2009-03-10
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 java0135012 的回复:]
问题应该出在包上,我把包注释掉了,就可以运行出结果11了

不是说javac -d xxx就会自动建立与包名相对应的目录文件结构么?

我用了为什么不行?
[/Quote]
-d后边你得给个目录,看看我给你的步骤。
wzdzh 2009-03-10
  • 打赏
  • 举报
回复
你在建立类时 应该是放在默认包里的 你的程序应该是copy的吧!
java0135012 2009-03-10
  • 打赏
  • 举报
回复
问题应该出在包上,我把包注释掉了,就可以运行出结果11了

不是说javac -d xxx就会自动建立与包名相对应的目录文件结构么?

我用了为什么不行?
胡须棉花糖 2009-03-10
  • 打赏
  • 举报
回复
弱弱的问一句,环境变量中对“/”“\”有要求吗?
java0135012 2009-03-10
  • 打赏
  • 举报
回复
类文件放在 C:\src 下

包名为package corejava;

类名为Operator

编译命令是:C:\src>javac Operator.java(编译通过,但是用javac corejavaOperator.java编译就通不过)

运行命令是:C:\src>java Operator(通不过)
C:\src>java corejava.Operator(也通不过)

谁知道怎么回事?
Java2King 2009-03-10
  • 打赏
  • 举报
回复
我昨天也遇到过这个问题~程序是对的~~

工程里的其他的程序都能运行~~

我是因为改了
public static void main(String[]args)

这句出的毛病
java0135012 2009-03-10
  • 打赏
  • 举报
回复
谢谢大家

上面提到的方法我试过了!

我的是拷贝的,copy的和手写的不同么?

starscc 2009-03-09
  • 打赏
  • 举报
回复
程序没问题,编译也不会有问题.应该是你运行的命令有问题.
java.lang.NoClassDefFoundError,这个是未发现class文件错误,即编译成功了,但字节码文件没找到.
你应该是用java Operate运行的吧?

原因是你程序中用package语句,那么运行的时候你必须自己手动创建类似package声明的文件目录

先应该在你原目录基础上(class文件那个目录)再创建一个文件corejava,然后运行命令改为java corejava.Operate 就可以了。
susoft2008 2009-03-09
  • 打赏
  • 举报
回复
找不到类 或是名字拼错了 或是你进入的文件夹不对
youandi79 2009-03-09
  • 打赏
  • 举报
回复
我没记错的话jdk的jar包应该是在jre\lib下的
ZiSheng 2009-03-09
  • 打赏
  • 举报
回复
估计是你编译后,运行的命令不对
按照我的步骤:
javac -d d: Operator.java
编译后在D盘生产了一个文件夹corejava
在D盘的目录下
输入
java corejava.Operator
结果
11
梧桐林 2009-03-09
  • 打赏
  • 举报
回复
package corejava;
把这句注释上试试吧
防空洞 2009-03-09
  • 打赏
  • 举报
回复
shi a
ZiSheng 2009-03-09
  • 打赏
  • 举报
回复
程序没有问题
java0135012 2009-03-09
  • 打赏
  • 举报
回复
package corejava;

public class Operator{
public static void main(String[] args){
int a = 10;
a += 2; // a = a + 2;

a = 10;
a >>= 1; //a = a >> 1;

a = -10;
a >>>= 1; //a = a >>> 1;
/*
System.out.println(a);

System.out.println( 2&3 );
System.out.println( 2|3 );
System.out.println( 2^3 );
System.out.println( ~2 );

System.out.println( 4>5?"aaa":"bbb" );
*/

a = 10;
a++; // a = a+1; 先计算表达式的值,再给a加1。表达式的值就是a的值
a--; // a = a-1;
++a; // a = a+1; 先给a加1, 再计算表达式的值。 表达式的值就是a的值
--a; // a = a-1;

System.out.println(++a);
}
}
加载更多回复(4)

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧