2009-05-26 12 views
1

TinyOSでmake mica2のようなmakeコマンドを使用すると、次のような問題が発生しましたでしょう:スレッド "main"のTinyos例外java.lang.UnsupportedClassVersionError:.classファイルのバージョン番号が正しくありません

Exception in thread "main" java.lang.UnsupportedClassVersionError: Bad version number in .class file 
    at java.lang.ClassLoader.defineClass1(Native Method) 
    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$100(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.loadClassInternal(Unknown Source) 
make: *** [exe0] Error 1 

を私はJAVAを再インストールおよびenv変数を追加しますが、それは動作しませんでした。私はTinyOS 2.1とJAVA 1.5を使っています。誰も私を助けることができますか?

JDK 1.6をインストールして問題を解決しました。 tos-check-envコマンドを実行すると、JDK 1.4または1.5以外の警告が表示されます。 TinyOSのバグかもしれない。

答えて

4

UnsupportedClassVersionErrorは、コンパイルされたものよりも古いバージョンのJVMでバイトコードを実行しようとしていることを意味します。クラスファイルビューアを使用して、ソースコードがコンパイルされたバージョンを確認し、 JAVA 1.5 u18と互換性があります。

2

エラーは、実行中のJavaのバージョンが、互換性のないバージョンのJavaでコンパイルされたクラスをロードしようとしていることを意味します。

あなたが提供した情報では、これ以上問題を診断することはできません。使用しているJavaライブラリと必要なJavaバージョンを確認してください。ここで何か問題が見つからない場合は、再インストールする前にJavaのバージョンでビルドされたキャッシュ済みの* .classファイルを削除するだけで済みます。

最後に、複数のJVMがインストールされている場合は、makeが期待通りのものを使用していることを確認してください。インストールJava 1.5u18を使用することは間違いありませんが、アプリケーションがまだどこかの1.4 JVMを見つけて使用することは可能です。

0

は、通常、例外メッセージの最初の行に

(Unsupported major.minor version 49.0) 

などのメッセージが存在することになります。しかし、あなたは持っています

Bad version number in .class file 

多分あなたのクラスファイルが壊れていますか?

1

今日は同じエラーが発生しました。Javaバージョン1.6とjre6をインストールし、Java 1.6バージョンをデフォルトバージョンにするだけで解決しました。

また、tos-check-envがjava 1.4またはjava 1.5のいずれかのバージョンをインストールしたかったので、私は以前にjava 1.5をインストールしていました。

また、クラスパスにjava 1.5と1.6の両方のバージョンを含めて、make micaz/opt/tinyos-2.1.0/apps/Blinkディレクトリに再度実行していました。

0

sudo update-alternatives --config javaを使用して、使用したいバージョンを設定します。

関連する問題