一个书上的代码,我在myeclipse上面运行老提示我找不到Exception in thread "main" ,然后就接着cmd模式下编译通过,代码应该没问题,但在myeclipse上面还是不行,不知道是什么问题,是classpath的问题吗?以前我没设置,就写了一个.;昨天加了点东西,求高人指点

解决方案 »

  1.   

    编译通过,eclipse也没有说编译不通过啊Exception in thread "main"
    是运行时不通过啊
    贴代码,贴异常
      

  2.   

    package org.lxh.gendemo1;
    public class GenDemo01 { public static void main(String[] args){
    Point p = new Point();
    p.setX(10); // 设置坐标。int --> Integer --> Object
    p.setY(10);// 设置坐标。int --> Integer --> Object
    int x = (Integer)p.getX() ; // 取出X:Object --> Integer --> int
    int y = (Integer)p.getY() ; // 取出X:Object --> Float --> float
    System.out.println("x = " + x);
    System.out.println("y = " + y);
    }}package org.lxh.gendemo1;public class Point { // 表示坐标类
    private Object x;
    private Object y; public Object getX() {
    return x;
    } public void setX(Object x) {
    this.x = x;
    } public Object getY() {
    return y;
    } public void setY(Object y) {
    this.y = y;
    }}
    java.lang.UnsupportedClassVersionError: Bad version number in .class file
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
    at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
    Exception in thread "main" 
      

  3.   

    编译class的java版本和运行的java的版本不一样
    解决方案1,设置 window->preference->java->installed jre
    设置成你系统的那个就是JAVA_HOME里指定的那个2,清空已经编译出来的class,用eclipse编译,用eclipse运行3. 命令行编译、命令行运行
      

  4.   

    我设置一直是这个路径的,刚刚我把路径改成com.sun.java.win32.x86那个,居然可以运行了,这个好像是eclipse自带的jdk吧,这么说的话,还是classpath设置问题吗?
      

  5.   

    只要记住一条
    编译用的javac和运行用的java要匹配楼主感觉你对Java的运行机制不是很清楚啊,回去补补吧,不是一句两句能说清的。
      

  6.   

    java.lang.UnsupportedClassVersionError: Bad version number in .class file
    都很明显的提示jdk版本问题了
      

  7.   

    问题的关键是你源程序第一个打包语句。 myeclipse 在编译的时候,他会在当前目录下生成你所要打的包,而且编译好的类都放在那个包里面,但是myeclipse在运行的时候,他会默认在源文件的当前目录下寻找编译好的字节码,并且不会递归的查找包,这样肯定编译出错, ,在CMD下,你肯定是先进如编译好的类所在的目录。这样当然会运行成功。
      

  8.   

    bad version number ----明显是JDK版本问题。
    web开发时Tomcat运行的JDK版本与支撑application运行的JDK版本不一致也会导致同样的问题。
      

  9.   

    学习了。以前也没遇到过这种问题,哪怕是在用ultraedit 写JAVA的时候。
      

  10.   


    public class Point { // 表示坐标类
        private Object x;
        private Object y;    public Object getX() {
            return x;
        }    public void setX(Object x) {
            this.x = x;
        }    public Object getY() {
            return y;
        }    public void setY(Object y) {
            this.y = y;
        }
        public static void main(String[] args){
            Point p = new Point();
            p.setX(10); // 设置坐标。int --> Integer --> Object
            p.setY(10);// 设置坐标。int --> Integer --> Object
            int x = (Integer)p.getX() ;    // 取出X:Object --> Integer --> int
            int y = (Integer)p.getY() ;    // 取出X:Object --> Float --> float
            System.out.println("x = " + x);
            System.out.println("y = " + y);
        }}
    有异常?不明真相……