java.lang.ClassLoader.loadClass中的错误(未知来源)

时间:2013-09-22 17:31:54

标签: java classloader

对于我的论文,我试图用图片处理一些事情,完成它的一个步骤是找到图片中的角落。经过一些冲浪,我发现它可以用Moravec的角点检测算法实现。幸运的是,我发现Moravec的算法已经由JFeatureLib在此链接上实现:https://code.google.com/p/jfeaturelib/source/browse/src/main/java/de/lmu/ifi/dbs/jfeaturelib/pointDetector/Moravec.java?r=8d96a8fa9a43a0ec7e7084b40169be56bddd6f36

(当然我在Eclipse的构建路径中导入了从JFeatureLib提供的jar文件) 所以我在项目的链接中使用了代码,并编写了一些代码来调用它。这是我创建一个Frame的代码,打开图片并在该链接上调用Moravec算法:

import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;




public class Compare{
    public Compare(){
        JFrame frame = new JFrame("Find corners in picture");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        JPanel panel = (JPanel)frame.getContentPane();
        JLabel label = new JLabel();
        label.setIcon(new ImageIcon("house.jpg"));
        panel.add(label);
        frame.setLocationRelativeTo(null);
        frame.pack();
        frame.setVisible(true);
    }
    public static void main (String[] args){
        SwingUtilities.invokeLater(new Runnable(){
            public void run(){
                new Compare();
            }
        });
        Moravec picture = new Moravec();
    }
}

关键是它在行

上返回错误
Moravec picture = new Moravec();

错误就像这样:

Exception in thread "main" java.lang.UnsupportedClassVersionError: de/lmu/ifi/dbs/jfeaturelib/pointDetector/PointDetector : Unsupported major.minor version 51.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(Unknown Source)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$000(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(Unknown Source)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$000(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at Compare.main(Compare.java:32)
你可以给我一些建议吗? 非常感谢!

1 个答案:

答案 0 :(得分:7)

Unsupported major.minor version 51.0
您正尝试在较旧的Java版本中运行使用较新Java版本编译的jar。消息建议de/lmu/ifi/dbs/jfeaturelib/pointDetector/PointDetector是使用JDK7编译的,但是您尝试使用旧版本运行它(我猜Java 6)。

执行java -version并查看是否属于这种情况。如果是这样,请在您的系统上找到JDK7,然后使用它来运行您的程序。