3

私の論文では、写真を使っていくつかのことを処理しようとしていますが、それを完了するための手順の 1 つは、写真のコーナーを見つけることです。サーフィンをした後、モラベックのコーナー検出アルゴリズムで実装できることがわかりました。運が良ければ、このリンクで JFeatureLib によって既に実装されている Moravec のアルゴリズムを見つけました: https://code.google.com/p/jfeaturelib/source/browse/src/main/java/de/lmu/ifi/dbs/jfeaturelib/ pointDetector/Moravec.java?r=8d96a8fa9a43a0ec7e7084b40169be56bddd6f36

(もちろん、JFeatureLib から提供された jar ファイルを Eclipse のビルド パスにインポートしました) そこで、プロジェクトのリンクにあるコードを使用し、それを呼び出すコードをいくつか書きました。フレームを作成し、画像を開いて、そのリンクで 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)

アドバイスをお願いします。どうもありがとう!

4

1 に答える 1

9

Unsupported major.minor version 51.0
新しい Java バージョンでコンパイルされた jar を古い Java バージョンで実行しようとしています。メッセージの提案de/lmu/ifi/dbs/jfeaturelib/pointDetector/PointDetectorはJDK7を使用してコンパイルされましたが、古いバージョンで実行しようとしています(私はJava 6を推測しています)。

実行java -versionして、これが当てはまるかどうかを確認します。その場合は、システムでJDK7を見つけて、代わりにそれを使用してプログラムを実行してください。

于 2013-09-22T18:11:00.260 に答える