public class shuiji
{
public static void main(String[] args)
{
while(true)
{
Shuiji SJ=new Shuiji();
new Shuiji().start();
}
}
}
class Shuiji extends Thread
{
public void run()
{
int[] randoms = {0,1};
Random rnd = new Random();
int x = 0;
//int count = 0;
while(true)
{
x = rnd.nextInt(2);
//if(randoms[x] != -1)
//{
//return randoms[x];
System.out.print(randoms[x]);
//try{Thread.sleep(500);}catch(Exception e){e.getLocalizedMessage();}
//randoms[x] = -1;
//count++;
//}
}
}
}
这个程序 编译通过了 为什么运行的时候说Exception in thread "main" java.lang.NoClassDefFoundError:
我其他的程序都可以运行的啊 请教啊这是为什么啊???????
13 个解决方案
#1
class Shuiji extends Thread 这个类名改掉。
#2
class Shuiji extends Thread
把Shuiji改掉,这里和public class shui重了。
把Shuiji改掉,这里和public class shui重了。
#3
public class shuiji
class Shuiji extends Thread
------------------------------------------------------
名字.
while(true)
{
Shuiji SJ=new Shuiji();
new Shuiji().start();
}
---------------------------------------------------------------------
你的电脑经不起这样折腾的.
class Shuiji extends Thread
------------------------------------------------------
名字.
while(true)
{
Shuiji SJ=new Shuiji();
new Shuiji().start();
}
---------------------------------------------------------------------
你的电脑经不起这样折腾的.
#4
编译能通过是因为你的程序逻辑上没有问题。但是运行时出现错误是为什么呢?
要知道,程序在编译后,都会生成所有类相对应的.class的文件,如本例子中就会生成shuiji.class和Shuiji.class两个类文件。但是在windows中,文件名是不区分大小写的,所以shuiji.class和Shuiji.class这两个文件其实是同一个文件,当你编译后,系统会将Shuiji类编译后的Shuiji.class覆盖shuije类编译的文件shuiji.class,所以当你运行的时候,其实是在运行Shuiji类编译后的文件,当然就会出现上面的异常了!
所以,总结一点就是:在java中,类名是区分大小写的,但在windows下,文件名是不区分大小写的。
如果还有疑问,请楼主在windows的同一目录下,新建 abc.txt 和 ABC.txt,看看系统是否会提示重复文件名???
。。。
要知道,程序在编译后,都会生成所有类相对应的.class的文件,如本例子中就会生成shuiji.class和Shuiji.class两个类文件。但是在windows中,文件名是不区分大小写的,所以shuiji.class和Shuiji.class这两个文件其实是同一个文件,当你编译后,系统会将Shuiji类编译后的Shuiji.class覆盖shuije类编译的文件shuiji.class,所以当你运行的时候,其实是在运行Shuiji类编译后的文件,当然就会出现上面的异常了!
所以,总结一点就是:在java中,类名是区分大小写的,但在windows下,文件名是不区分大小写的。
如果还有疑问,请楼主在windows的同一目录下,新建 abc.txt 和 ABC.txt,看看系统是否会提示重复文件名???
。。。
#5
这样执行编译命令:
javac shuiji.java
这样执行运行命令
java shuiji
还有要记得设置环境变量 CLASSPATH
javac shuiji.java
这样执行运行命令
java shuiji
还有要记得设置环境变量 CLASSPATH
#6
哦,要在shuiji.java文件所在的目录后执行上述命令
#7
类名重了
#8
while(true)
{
Shuiji SJ=new Shuiji();
new Shuiji().start();
}
---------------------------------------------------------------------
你的电脑经不起这样折腾的.
还有:
while(true) {
x = rnd.nextInt(2);
System.out.print(randoms[x]);
}
=====================================================================
是啊,不知道你准备干什么?竟有两个死循环~~
{
Shuiji SJ=new Shuiji();
new Shuiji().start();
}
---------------------------------------------------------------------
你的电脑经不起这样折腾的.
还有:
while(true) {
x = rnd.nextInt(2);
System.out.print(randoms[x]);
}
=====================================================================
是啊,不知道你准备干什么?竟有两个死循环~~
#9
请问一下 empireconquer()
你有没有把上面的代码拿下来 javac ,java啊???按你的方法能通过吗??不是编译的问题,自己动手试了后再讲,我想好一点。。。
你有没有把上面的代码拿下来 javac ,java啊???按你的方法能通过吗??不是编译的问题,自己动手试了后再讲,我想好一点。。。
#10
shuiji名字
#11
类名和你的文件命应该一致,最好类名首字母大写
#12
你的公共类类名是小写!
#13
请大家注意写程序的格式
类名最好大写 方法名小写
类名最好大写 方法名小写
#1
class Shuiji extends Thread 这个类名改掉。
#2
class Shuiji extends Thread
把Shuiji改掉,这里和public class shui重了。
把Shuiji改掉,这里和public class shui重了。
#3
public class shuiji
class Shuiji extends Thread
------------------------------------------------------
名字.
while(true)
{
Shuiji SJ=new Shuiji();
new Shuiji().start();
}
---------------------------------------------------------------------
你的电脑经不起这样折腾的.
class Shuiji extends Thread
------------------------------------------------------
名字.
while(true)
{
Shuiji SJ=new Shuiji();
new Shuiji().start();
}
---------------------------------------------------------------------
你的电脑经不起这样折腾的.
#4
编译能通过是因为你的程序逻辑上没有问题。但是运行时出现错误是为什么呢?
要知道,程序在编译后,都会生成所有类相对应的.class的文件,如本例子中就会生成shuiji.class和Shuiji.class两个类文件。但是在windows中,文件名是不区分大小写的,所以shuiji.class和Shuiji.class这两个文件其实是同一个文件,当你编译后,系统会将Shuiji类编译后的Shuiji.class覆盖shuije类编译的文件shuiji.class,所以当你运行的时候,其实是在运行Shuiji类编译后的文件,当然就会出现上面的异常了!
所以,总结一点就是:在java中,类名是区分大小写的,但在windows下,文件名是不区分大小写的。
如果还有疑问,请楼主在windows的同一目录下,新建 abc.txt 和 ABC.txt,看看系统是否会提示重复文件名???
。。。
要知道,程序在编译后,都会生成所有类相对应的.class的文件,如本例子中就会生成shuiji.class和Shuiji.class两个类文件。但是在windows中,文件名是不区分大小写的,所以shuiji.class和Shuiji.class这两个文件其实是同一个文件,当你编译后,系统会将Shuiji类编译后的Shuiji.class覆盖shuije类编译的文件shuiji.class,所以当你运行的时候,其实是在运行Shuiji类编译后的文件,当然就会出现上面的异常了!
所以,总结一点就是:在java中,类名是区分大小写的,但在windows下,文件名是不区分大小写的。
如果还有疑问,请楼主在windows的同一目录下,新建 abc.txt 和 ABC.txt,看看系统是否会提示重复文件名???
。。。
#5
这样执行编译命令:
javac shuiji.java
这样执行运行命令
java shuiji
还有要记得设置环境变量 CLASSPATH
javac shuiji.java
这样执行运行命令
java shuiji
还有要记得设置环境变量 CLASSPATH
#6
哦,要在shuiji.java文件所在的目录后执行上述命令
#7
类名重了
#8
while(true)
{
Shuiji SJ=new Shuiji();
new Shuiji().start();
}
---------------------------------------------------------------------
你的电脑经不起这样折腾的.
还有:
while(true) {
x = rnd.nextInt(2);
System.out.print(randoms[x]);
}
=====================================================================
是啊,不知道你准备干什么?竟有两个死循环~~
{
Shuiji SJ=new Shuiji();
new Shuiji().start();
}
---------------------------------------------------------------------
你的电脑经不起这样折腾的.
还有:
while(true) {
x = rnd.nextInt(2);
System.out.print(randoms[x]);
}
=====================================================================
是啊,不知道你准备干什么?竟有两个死循环~~
#9
请问一下 empireconquer()
你有没有把上面的代码拿下来 javac ,java啊???按你的方法能通过吗??不是编译的问题,自己动手试了后再讲,我想好一点。。。
你有没有把上面的代码拿下来 javac ,java啊???按你的方法能通过吗??不是编译的问题,自己动手试了后再讲,我想好一点。。。
#10
shuiji名字
#11
类名和你的文件命应该一致,最好类名首字母大写
#12
你的公共类类名是小写!
#13
请大家注意写程序的格式
类名最好大写 方法名小写
类名最好大写 方法名小写