0

Javaを使ってOpenGLを学びたいです。OpenGLを使用した経験はありませんが、Javaには慣れています。

計画は、EclipseIndigoでJOGLを使用することです。開始するには、 Schabbyのブログから簡単なhelloworldアプリケーションを作成しました。私のアプリケーションのソースは同じです。

すべての手順に従い、gluegen-rt-natives-windows-amd64.jar、gluegen-rt.jar、jogl-all.jar、およびjogl-all-natives-windows-amd64.jarライブラリを参照します。アプリケーションは、JRE6x64で実行するように構成されています。

アプリケーションを実行すると、次の例外がスローされます。

Exception in thread "main" java.lang.NoSuchMethodError: jogamp.common.awt.AWTEDTExecutor.invoke(Ljava/lang/Object;ZZLjava/lang/Runnable;)Z

他の回答は、問題がメインメソッドにあることを示唆していますが、問題は見られません。

public static void main(String[] args) 
{
       \\Implementation
}

この問題を解決するために他に何を試みることができますか?

編集:何かを描画する必要があるたびに例外がスローされるようです。

この行にコメントframe.setSize( frame.getContentPane().getPreferredSize() );すると、最小の幅と高さのデフォルトのフレームが表示されますが、サイズを変更するとすぐに同じ例外がスローされます。

4

1 に答える 1

1

これは、ネイティブライブラリをロードできない場合にスローされる最上位の例外です。ローカルインストールに関するドキュメントを参照し、注意深く従ってください。

まず、JREEclipseが使用しているのが実際には64ビットであることを確認してください。あなたの振る舞いは、32ビットJREに64ビットDLLをロードしようとすることと一致しています。

また、ブログはやや古くなっていることに注意してください。たとえば、jogl.all.jar現在はjogl-all.jarです。jar参照が正しいファイルを参照していることを確認してください。現在のリリースに基づいたこの一連の手順を使用すると、より良い結果が得られる可能性があります。

ネイティブjarは実行時に展開されます。このメカニズムが機能するには、このjarが格納されているディレクトリが書き込み可能である必要があります。私は通常、展開されたDLL / jnilib / soファイルを使用し、すべての疑いを排除するためにjava.library.pathを設定するというより詳細な手順を実行します。

于 2013-01-29T23:10:17.690 に答える