在linux下,安装配置了java 开发环境,用eclipse 调试一些程序的时候发现以下的有错误,显示是JDK版本要在1.5,我装的最新的版本,可就是不行
for(Line2D l : lines)
    g2.draw(l);
private ArrayList<Line2D> lines;

解决方案 »

  1.   

    class SketchPanel extends JPanel{
       ...
       private ArrayList<Line2D> lines;
       ...
    }
    如此定义错误在哪里,是不是1.5以下JDK版本不能如此定义
      

  2.   

    你用java -version看看你的JDK版本是多少
    要用泛型必须要求1.5以上的
      

  3.   

    关键是会不会有多个version的存在
      

  4.   

    我的eclipse  用jdk1.6时不能使用泛型   要改回1.5就好了
      

  5.   

    eclipse设置一下
    window>preferences>java>compiler 右边的版本改一下如果是命令行里有问题 whereis javac 看一下你机子里几个javac 把那个1.6的环境变量排到PATH前面去
      

  6.   

    我将JDK1.6所在路径添加到PATH变量
     #echo $PATH
    /usr/local/jdk1.6.0_10/bin:/usr/local/bin:/usr/local/sbin:/sbin:/usr/sbin:/bin:/usr/bin:/usr/bin/X11:/usr/games然后用命令,竟然发现不能找到新添加的那个路径下的javac。
     #whereis javac
    javac: /usr/bin/javac /usr/X11R6/bin/javac /usr/bin/X11/javac再看看java的版本,显示版本是最新的
    # java -version
    java version "1.6.0_10"
    Java(TM) SE Runtime Environment (build 1.6.0_10-b33)
    Java HotSpot(TM) Client VM (build 11.0-b15, mixed mode, sharing)
    然后调试了一个简单的helloword程序,发现以前可以运行的程序都不能运行了,错误提示如下
    Exception in thread "main" java.lang.ClassFormatError: Helloworld (unrecognized class file version)
       at java.lang.VMClassLoader.defineClass(libgcj.so.70)
       at java.lang.ClassLoader.defineClass(libgcj.so.70)
       at java.security.SecureClassLoader.defineClass(libgcj.so.70)
       at java.net.URLClassLoader.findClass(libgcj.so.70)
       at gnu.gcj.runtime.SystemClassLoader.findClass(libgcj.so.70)
       at java.lang.ClassLoader.loadClass(libgcj.so.70)
       at java.lang.ClassLoader.loadClass(libgcj.so.70)
       at gnu.java.lang.MainThread.run(libgcj.so.70)哪里的问题呢?
      

  7.   

    哦,明白了,重新配置了JRE,发现程序可以运行了
    但是为什么wherels 找不到新path下的javac呢?