2011-12-21 9 views
0

これまでにこのエラーが発生したことはありませんでした。以前はarrayListを使用していませんでした。このコードを使用して動作を確認しています。私は主に2次元配列要素を削除するメソッドを記述しようとしています(次の要素が最後の2要素の場合)。コンパイルして同じマシンで実行しています。私は最新バージョンを実行しています。私はLinux Ubuntu 11.10を使用しています。これはコードです:arraylistを持つjava.lang.UnsupportedClassVersionError

import java.util.*; 

public class Test{ 
public static void main(String[] args){ 

    float[][] a = {{304.0f, 2743.0f}, 
    {304.0f, 2743.0f}, 
    {304.0f, 2754.0f}, 
    {304.0f, 2754.0f}, 
    {325.0f, 2764.0f}, 
    {346.0f, 2775.0f}, 
    {367.0f, 2775.0f}, 
    {367.0f, 2764.0f}, 
    {367.0f, 2754.0f}, 
    {356.0f, 2723.0f}, 
    {325.0f, 2691.0f}, 
    {304.0f, 2670.0f}, 
    {304.0f, 2639.0f}, 
    {356.0f, 2639.0f}, 
    {377.0f, 2650.0f}, 
    {377.0f, 2650.0f}}; 

    foo(a); 
    for (int i = 0; i < a.length; ++i) 
     System.out.println(a[i]); 

} 

public static float[][] foo(float[][] array){ 

    List<float[]> al = new ArrayList<float[]>(Arrays.asList(array)); 

    for (int i = 0; i < al.size(); ++i) 
     if (al.get(i)[0] == al.get(i+1)[0] && al.get(i)[1] == al.get(i+1)[1]) 
      al.remove(i); 

    float[][] b = new float[al.size()][2]; 

    for (int i = 0; i < al.size(); ++i) 
     b[i] = al.get(i); 

    return b; 
} 
} 

私が手にエラーがある:

Exception in thread "main" java.lang.UnsupportedClassVersionError: Test : Unsupported major.minor version 51.0 
at java.lang.ClassLoader.defineClass1(Native Method) 
at java.lang.ClassLoader.defineClass(ClassLoader.java:634) 
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) 
at java.net.URLClassLoader.defineClass(URLClassLoader.java:277) 
at java.net.URLClassLoader.access$000(URLClassLoader.java:73) 
at java.net.URLClassLoader$1.run(URLClassLoader.java:212) 
at java.security.AccessController.doPrivileged(Native Method) 
at java.net.URLClassLoader.findClass(URLClassLoader.java:205) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:321) 
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:266) 
Could not find the main class: Test. Program will exit. 

また、あなたがこれを行うには簡単に方法を提案することができれば、私は非常に感謝されます。ありがとうございました!

答えて

2

これは、お使いのバージョンjavac.exeがご使用のバージョンjava.exeより新しいことを意味します。 が生成しているクラスファイルは、この古いjava.exeで読み取ることはできません。しばしば人々はjava.exeの余分な古いコピーをC:\WINDOWSのようなどこか狂った場所に置いています。それを見つけて削除するか、新しいコピーが最初に見つかるようにPATHを修正してください。

+0

私はLinux Ubuntu 11.10を実行しています(これを明確にしないと申し訳ありません)。それ、どうやったら出来るの? –

+0

さて、 'java'と' javac'は '* .exe'ではなく、一般的に同じ考えです。 'which java'と入力すると、どこから' java'を取得しているのかがわかります。おそらく一つのシナリオは '/ usr/bin/java'がインストールされており、インストールしたばかりのJDKの前にあなたのパスにあります。 '〜/ .profile'でPATHを変更すると、' JDK/bin'が最初に来ます。 –

+0

私はついにそれを作った、私はまだLinuxのルーキーです、ありがとう、非常に非常に! –

関連する問題