小弟在做thinkin java上面的题目 用的是eclipse
有一个类无法编译 类名我确实检查过了 是叫ex17 下面是我自己写的代码import java.util.*;
import java.util.concurrent.*;public class ex17 { /**
 * @param args
 */
public static void main(String[] args) throws Exception {
ExecutorService exec = Executors.newCachedThreadPool();
for(int i = 0;i<10; i++){
exec.execute(new ex17_sensoro(i));
}
System.out.println("Total: " + ex17_sensoro.getTotalCount());
System.out.println("Sun of Sensoro: " + ex17_sensoro.sumSensoro());
}}
class ex17_count{
private int count = 0;
public synchronized int increment(){
int temp = count;
return (count = ++temp);
}
public synchronized int value(){ return count;}
}class ex17_sensoro implements Runnable{
private static ex17_count count = new ex17_count();
private static List<ex17_sensoro> sensoro = new ArrayList<ex17_sensoro>();
private int number = 0;   // the number of one sensoro
private final int id; // id of sensoro
public ex17_sensoro(int id){
this.id = id;
sensoro.add(this);
}
public void run(){
synchronized(this){
++number;
System.out.println(this + "Total: " + count.increment());

}
public synchronized int getValue(){return number;}
public String toString(){
return "Sensoro "+ id + ":" + getValue();
}
public static int getTotalCount(){
return count.value();
}
public static int sumSensoro(){
int sum = 0;
for(ex17_sensoro sensoro1 : sensoro)
sum += sensoro1.getValue();
return sum;
}

}
/* output
java.lang.NoClassDefFoundError: ex17
Exception in thread "main" 
急死我了在线等  谢谢

解决方案 »

  1.   

    程序没问题啊,在我机上可以用
    F:\javatest>java ex17
    Sensoro 0:1Total: 1
    Sensoro 1:1Total: 2
    Sensoro 2:1Total: 3
    Sensoro 3:1Total: 4
    Sensoro 4:1Total: 5
    Sensoro 5:1Total: 6
    Sensoro 6:1Total: 7
    Sensoro 7:1Total: 8
    Sensoro 8:1Total: 9
    Sensoro 9:1Total: 10
    Total: 10
    Sun of Sensoro: 10
      

  2.   


    这个就奇怪了 为什么我的就不可以执行 有人碰到过吗?我确实java文件名叫 ex17 的
      

  3.   

    Sensoro 0:1Total: 1
    Sensoro 1:1Total: 2
    Sensoro 3:1Total: 3
    Sensoro 4:1Total: 4
    Sensoro 5:1Total: 5
    Sensoro 6:1Total: 6
    Sensoro 7:1Total: 7
    Sensoro 8:1Total: 8
    Total: 8
    Sun of Sensoro: 8
    Sensoro 2:1Total: 9
    Sensoro 9:1Total: 10我的也可以运行
      

  4.   

    Sensoro 0:1Total: 1
    Sensoro 1:1Total: 2
    Sensoro 3:1Total: 3
    Sensoro 4:1Total: 4
    Sensoro 5:1Total: 5
    Sensoro 6:1Total: 6
    Sensoro 7:1Total: 7
    Sensoro 8:1Total: 8
    Total: 8
    Sun of Sensoro: 8
    Sensoro 2:1Total: 9
    Sensoro 9:1Total: 10我的也可以运行
      

  5.   

    你用eclipse直接运行  还是用cmd命令执行
      

  6.   


    eclipse啊 其他的java文件都可以执行的 就这个不可以
      

  7.   

    重新打开eclipse,或重建个文件试试
      

  8.   

    你的eclipse上面的截图,我看见有X在项目上,这个时候,eclipse是不会自动编译的,也就是说你的java还没有被编译呢
    新建工程测试,或者clean工程,重启ec。直到没X为止,可以通过problem视图查看现在工程的错误情况。
      

  9.   

    不是一定不编译,大部分情况编译,少数情况会不编译了,比如原来引的jar在系统中已经不存在了这个时候工程就不能自动编译了,尽管你的java类已经不引那个不存在的jar了。这是ec的脾气。
      

  10.   

    你给这个类建一个新的包,比如说com.test.ex17
    然后把这个类再放进去,再执行一次试试看
    这样应该就可以解决了
      

  11.   

    楼上的说得对,你的ec里面的工程都有个x,这里就是有问题的,你可以把他刷新,或者是关了重启,或者是clean一下,也就相当于初始化一下这个工程,然后试试,问题总会解决的,多试几次,问题不一定就出在程序上。解决的方法也不一定就是这里说的几种,谢谢