• 締切済み

javaでopenglプログラムが実行できません

お世話になります。 javaでopenglのプログラムを実行すべくjava.netのJOGLプロジェクトのページから以下をダウンロードしました。 jogl-1.1.1a-windows-i586.zip jogl-demos.zip jogl-demos-src.zip 参考サイトの指示に従って、jogl.jarを含む全ての*.jarを[JDK_HOME]\jre\lib\extにコピーし、gluegen-rt.dll,jogl.dll,jogl_awt.dll,jogl_cg.dllを[JDK_HOME]\jre\binにコピーしてインストールしましたが 以下のようにデモプログラムを実行すると以下のエラーが出て実行できません。 どこが悪いのでしょうか?よろしくお願いします。 F:\java\opengl\jogl-demos>java -cp jogl-demos.jar demos.gears.Gears Exception in thread "main" java.lang.NoClassDefFoundError: javax/media/opengl/GLEventListener 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$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.loadClassInternal(Unknown Source) Caused by: java.lang.ClassNotFoundException: javax.media.opengl.GLEventListener 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) ... 12 more Could not find the main class: demos.gears.Gears. Program will exit. 参考サイト http://itpro.nikkeibp.co.jp/article/COLUMN/20060710/242865/?ST=develop

みんなの回答

noname#94983
noname#94983
回答No.1

NoClassDefFoundErrorというから、クラスが見つかっていないのだろう。 [JDK_HOME]\jre\lib\extにコピーしたと書いてあるが、javaコマンドで実行するときに使われているのは、JDK_HOME\jre内のjava.exeだろうか? 案外、[JRE]のjava.exeだったりしないだろうか。だとすると、JREのlib\ext内にjarがないとプログラムの実行はできないと思うが。 JREとJDKがインストールしてあると、javacとjavaがそれぞれJDKとJREというように別のところにあるものが使われていたりするので注意が必要。

kahata
質問者

お礼

ありがとうございました。ご指摘のとおりJREのlib\ext内にjarを入れて実行できるようになりました。 javacはjarのCLASSPATHを通してcompile可能です。 2つのjava.exeがあると面倒ですね。

関連するQ&A

専門家に質問してみよう