2

この質問がこのウェブサイトで数回取り上げられているのを見たことがありますが、明確な答えを見たことがないので、繰り返しません。JOGL と Java3D でプログラミングしているときに、いくつかのエラーが発生しました。最終的に Android App Store に掲載するプロジェクトを作成しようとしていました。Java3D と JOGL を使用してプロジェクトを開始し、それらを Mac のシステム ライブラリに配置したところ、問題なく動作しました。次に、プロジェクトを移植可能にするために、J3D および JOGL ファイルをプロジェクト内に移動して、j3d および JOGL をインストールしなくても実行可能な jar ファイルにコンパイルできるようにしました。しかし、プロジェクトを実行するたびに、次のエラーが発生しました。

Exception in thread "main" java.lang.NoClassDefFoundError: javax/media/opengl/GL
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:190)
    at javax.media.j3d.Pipeline$PipelineCreator.run(Pipeline.java:73)
    at javax.media.j3d.Pipeline$PipelineCreator.run(Pipeline.java:61)
    at java.security.AccessController.doPrivileged(Native Method)
    at javax.media.j3d.Pipeline.createPipeline(Pipeline.java:90)
    at javax.media.j3d.MasterControl.loadLibraries(MasterControl.java:832)
    at javax.media.j3d.VirtualUniverse.<clinit>(VirtualUniverse.java:274)
    at javax.media.j3d.GroupRetained.<init>(GroupRetained.java:155)
    at javax.media.j3d.TransformGroupRetained.<init>(TransformGroupRetained.java:116)
    at javax.media.j3d.TransformGroup.createRetained(TransformGroup.java:114)
    at javax.media.j3d.SceneGraphObject.<init>(SceneGraphObject.java:114)
    at javax.media.j3d.Node.<init>(Node.java:172)
    at javax.media.j3d.Group.<init>(Group.java:549)
    at javax.media.j3d.TransformGroup.<init>(TransformGroup.java:87)
    at src.Project.<clinit>(Project.java:47)
    at src.ProjectPanel.<clinit>(ProjectPanel.java:8)
Caused by: java.lang.ClassNotFoundException: javax.media.opengl.GL
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 17 more

私は Eclipse を IDE として使用しておりjogl-all.jargluegen-rt.jarプロジェクトのクラスパスにファイルと必要なすべての j3d jar がありGL.classますが、何らかの理由でファイルが見つかりません。

助けてくれてありがとう。

4

1 に答える 1

3

アプリケーションを実行可能な JAR としてエクスポートする場合は、+ ライブラリの処理: 必要なライブラリを生成された JAR の隣のサブフォルダーにコピーするか、+ ライブラリの処理: 必要なライブラリを生成された JAR にパッケージ化します。

詳細については、jogamp jogl wiki を参照してください: http://jogamp.org/wiki/index.php/Setting_up_a_JogAmp_project_in_your_favorite_IDE http://jogamp.org/wiki/index.php/JogAmp_JAR_File_Handling

また、アプリケーションを実行するには、java -jar yourapp.jar コマンド ライン オプションを使用する必要があります。

于 2013-08-02T00:55:59.597 に答える