在eclipse下运行一个名为testphone的application,结果弹出对话框Could not found the main class.Program will exit.    
    Console中输出:java.lang.NoClassDefFoundError: com/ulic/life/ws/ps/testphone
我看网上说是环境变量问题,于是重新设了环境变量path  C:\orant\bin;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\orant\jdk\bin;C:\Program Files\IDM Computer Solutions\UltraEdit-32;C:\Program Files\Rational\common;C:\j2sdk1.4.2_08\bin
classpath .;C:\j2sdk1.4.2_08\lib\tools.jar;C:\j2sdk1.4.2_08\lib\dt.jar;C:\j2sdk1.4.2_08\lib\rt.jar
java_home  C:\j2sdk1.4.2_08  设好后还是没解决问题
    在命令窗口中测试,能执行java Application,也能显示我的java环境变量配置。但当我第一次输入jar命令时输出Can't find class sun/tools/jar/Main,第二次输入jar命令时弹出对话框  :jar.exe遇到问题需要关闭
不知道这两个问题是不是相关,究竟哪里错了,求各位大虾支招~

解决方案 »

  1.   

    帮忙顶。
    java.lang.NoClassDefFoundError: com/ulic/life/ws/ps/testphone
      

  2.   

    Could not found the main class.Program will exit. 
    代码...
      

  3.   

    testphone  这个 ... 是不是在JSP页面里的Action名字没有写对 ...
      

  4.   

    你的 编译环境不对 你电脑的jdk可能是1.5但是你的eclipse的选择jdk为1.4就会这样 希望你检查一下 要做到统一
      

  5.   

    package com.ulic.life.ws.ps;interface Selector {
      boolean end();
      Object current();
      void next();
    } public class testphone {
      private Object[] o;
      private int next = 0;
      public testphone(int size) {
        o = new Object[size];
      }
      public void add(Object x) {
        if(next < o.length) {
          o[next] = x;
          
          next++;
        }
      }
      private class SSelector implements Selector {
        int i = 0;
        public boolean end() {
          return i == o.length;
        }
        public Object current() {
          return o[i];
        }
        public void next() {
          if(i < o.length) i++;
        }
      }
      public Selector getSelector() {
        return new SSelector();
      }
      public static void main(String[] args) {
      testphone s = new testphone(10);
        for(int i = 0; i < 10; i++)
          s.add(Integer.toString(i));
        Selector sl = s.getSelector();    
        while(!sl.end()) {
          System.out.println((String)sl.current());
          sl.next();
        }
      }
    }
    代码没有问题且能执行。我的工程选的就是1.4啊
      

  6.   

    我输入java -version 显示的就是1.4
      

  7.   

    把   path   classpath里的C:\j2sdk1.4.2_08\换成%Java_Home% 试试
      

  8.   

    jdk环境变量设的不对,应该是jdk1.5.0_14\bin
      

  9.   

    eclipse一般情况下默认匹配的JDK是1.4,
    你在创建项目的时候,项目对话框下面会有提示的!
    把默认1.4的改成与你安装的JDK匹配的就可以了!
      

  10.   

    我前两天碰到和你一样的问题:
    现象:类带了包名package com.ulic.life.ws.ps; 编译不了,但实际上在命令行下是可以编译的,因为你cd到ps目录运行的命令javac testphone.java,但在eclipse下却不行。你再新建一个类(不带包名的),你会发现可以运行。
    解决方法:
    1、你的电脑上肯定安装了多个版本的JDK。。问题就在这里
    2、命令行下运行:java -version看看JDK的版本
    3、如果在命令行下可以编译和运行java文件那排除环境变量的问题。
    4、在eclipse下ECLIPSE\WINDOW\PREFERENCES\JAVA\INSTALLED JRES\查看你现在所使用的JDK,注意安装了多个版本的JDK,在命令行运行JAVA -VERSION永远看到的是最后安装的版本。在这里你不用管,你只要确定你的程序要用什么版本的JDK,在ECLIPSE\WINDOW\PREFERENCES\JAVA\INSTALLED JRES\目录下就选哪个就行。(同一台电脑上是可以安装多个JDK的)
    5、关键在这里:将ECLIPSE\WINDOW\PREFERENCES\JAVA\COMPILER中的compliance设为你正在使用的JDK的版本即可(注意你正在使用的JDK是以你eclipse中INSTALLED JRES目录下勾选的为主的,不一定是你java -version看到的)。
    比如说:我的电脑安装jdk 1.5所以java -version 看到的是1.5的。但因为开发需要我拷贝了jdk 1.3到电脑上,然后将eclipse INSTALLED JRES\设为1.3,并将compliance设为1.3即可。