• 締切済み

Java3Dをインストールしたが動作エラーとなりま

JDK1.8.0_74をインストールし、コンパイル、正常動作も行われていました。 そこで、次にJava3D API(java3d-1_5_1-windows-amd64.exe)をインストールしました。 コマンドプロンプトでサンプルプログラムのコンパイルをした後、実行すると末尾に記載のメッセージが表示されてしまいます。 JDKの環境変数のうちユーザー環境変数に TEMP と TMP の2つが表示されていますが、PATH (bin フォルダ)の指定がなく、これが原因しているのではないかと思いますが、新規にPATHを作る場合の変数値をどのようにしたらよいかわかりません。 尚、システム環境変数については、PATHが・・・\Program Files\Java\ jdk1.8.0_74\bin; となっています。(・・・の部分は設定変更をしていません) 上記以外のことが原因しているのであれば、併せて教えてください。 メッセージ Error: A JNI error has occurred, please check your installation and try again Exception in thread "main" java.lang.NoClassDefFoundError: javax/media/j3d/Canva s3D at java.lang.Class.getDeclaredMethod0(Native Method) at java.lang.Class.privateGetDeclaredMethods(Unknown Source) at java.lang.Class.privateGetMethodRecursive(Unknown Source) at java.lang.Class.getMethod0(Unknown Source) at java.lang.Class.getMethod(Unknown Source) at sun.launcher.LauncherHelper.validateMainClass(Unknown Source) at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source) Caused by: java.lang.ClassNotFoundException: javax.media.j3d.Canvas3D at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.mice.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) ... 7 more

みんなの回答

回答No.3

1、2については私も知りませんが とりあえず、私が実行することができた環境を教えます。 OS windows8 Java3d java3d-1_5_1-windows-amd64.exe 3について 環境変数(ユーザー環境変数とシステム環境変数は動作としてはどちらにclasspath(Path)を書いても同じです) Java_Home C:\Program Files\Java\jdk1.8.0_74; Path C:\Program Files\Java\jdk1.8.0_74\bin; .;C:\Program Files\Java\Java3D\1.5.2\lib\ext\; C:\Program Files\Java\Java3D\1.5.2\bin\; URLよりこの二つの環境変数が必要だと思います。

参考URL:
http://www.javadrive.jp/install/jdk/index4.html
taihey
質問者

お礼

tyami_skyさん、ANo.2とANo.3の2回にわたる回答をありがとうございました。 残念ながら、まだ解決には至っておりませんが、追加1として別途質問しました。 あらためてお答えいただきたくお願いします。

taihey
質問者

補足

Java3D 平成28年5月3日 Tyami_skyさん、折り返しの回答ありがとうございました。 下記1に記す手順でしてみましたが、まだパス設定が適正でないのか、サンプルプログラムを実行することができません。私が実施した操作を1に記載し、Tyami_skyさんへの再確認と質問を2に記します。 1. 実施した操作手順 (1) jdk1.8.0_74とjre1.8.0_74と同じフォルダ(C:\Program Files\Java)にフォルダJava3Dを作り、ダウンロードしたj3d-1_5_2-windows-i586. zipを展開後に生成したj3d-jre.zipを展開したところ、binフォルダとlibフォルダができました。libフォルダ内にextフォルダがあり3つのjarファイル(j3dcore.jar、j3dutils.jar、vecmath.jar)があります。(何故か、フォルダJava3Dとフォルダbin及びlibとの間に1.5.2はj3d-jre.zipを展開してもできません。) (2) 環境変数JAVA_HOMEがC:\Program Files\Java\jdk1.8.0_74\があることを確認した後、既存の環境変数Path(C:\Program Files\Java\jdk1.8.0_74\bin;)に下記を追加しました: .;C:\Program Files\Java\Java3D\lib\ext\;C:\Program Files\Java\Java3D\bin\; (3) サンプルプログラムをコンパイル後に実行させましたが、次のエラーメッセージが表示され良い結果を得ることはできませんでした。 Exception in thread “main” java.lang.UnsatisfiedLinkError: no j3dcore-ogl in java. Library.path (4) 環境変数Pathの追加した部分を削除し元に戻し、新たな環境変数CLASSPATHを作り、その値を下記にしてサンプルプログラムをコンパイル後に実行させましたが、結果は同じでした。 2. Java3Dは実行できない状態ですが、通常のJavaは実行できています。今なお、Java3Dに対するパスが有効でないと思います。JDKとJava3Dを再インストールして再度挑戦しようと思いますが、Tyami_skyさんの環境を再確認したく下記にお答えください。 (1) Java3D APIは、java3d-1_5_1-windows-amd64.exeとのことですが、コントロール→プログラムのアンインストールで表示させるリストの中にJava3Dは存在しますか?私の場合、Java 8 Update 74 (64-bit)とJava SE Development Kit 8 Update はあるのですがJava3Dは存在しません。以前XPやWindows2000にインストールしていた頃はリストの中に存在していたと記憶しています。 (2) Tyami_skyさんの場合、java3d-1_5_1-windows-amd64.exeを、jdk1.8.0_74と同じフォルダにインストールされましたか。私の場合、jdk1.8.0_74はC:\Program Files\Javaに存在しており、1-(1)に記載したようにJava3Dフォルダを設けてj3d-jre.zipを展開したのですが、java3d-1_5_1-windows-amd64.exeは自動的にインストールされましたか? (3) 環境変数のPathの追加は上記の1-(2)のように既存に追加されたのですか、それとも1-(4)のように新たに別名の環境変数を作られたのですか。 以上、お答えいただきたく、よろしくお願いします。

回答No.2

私もずっと悩んでいて今解決したので回答します。 私は環境変数のPATHが間違っていて、 C:\Program Files\Java\Java3D\1.5.2\lib\ext\;C:\Program Files\Java\Java3D\1.5.2\bin\ だと思って書いてましたが、URLより .;C:\Program Files\Java\Java3D\1.5.2\lib\ext\;C:\Program Files\Java\Java3D\1.5.2\bin\ これにすると問題なく動作しました。

参考URL:
http://maedakobe.rw.xsi.jp/javaap/java3d.htm
taihey
質問者

補足

Tyami_skyさん、回答ありがとうございました。 解決に一歩近づいたように思えるのですが、下記のように分らないところがあり、教えていただきたく存じます。 1. 環境変数を見直す前に、教えていただいた参考URLを参照したところ、私がインストールしたava3d-1_5_1-windows-amd64.exeよりも j3d-1_5_2-windows-i586.exe の方が適切ではないかと考え、Java3D API をJava 3DTM Downloads: Release Buildsからダウンロードしてインストールしなおしました。 2. ダウンロード元のReadmeには英文にて、以下の指示がありました。 (1) j3d-1_5_2-windows-i586.zipを展開後に生成するj3d-jre.zipを某フォルダ(例えば、C:/Users/myhome/j3d に展開すること (2) j3d-jre.zip 展開後の\lib\ext内のj3dcore.jar、j3dutils.jar、vecmath.jarへパスするように、System control panelを使ってCLASSPATH環境変数を以下のように変更すること .;C:/Users/myhome/j3d/lib/ext/j3dcore.jar;C:/Users/myhome/j3d/lib/ext/ j3 dutils.jar;C:/Users/myhome/j3d/lib/ext/vecmath.jar 3. 上記のCLASSPATH環境変数変更の指示はTyami_skyさんの解決方法に類似していて納得がいきますが、私には肝心の環境変数の変更の方法がわかりません。 Windows7の場合、コントロールパネル→システムとセキュリティ→システム→ システムの詳細設定でシステムのプロパティ画面を表示して、「詳細設定」タブの下の「環境変数」ボタンをクリックして表示される「環境変数」画面には上部にユーザー環境変数としてTEMPとTMPがあり、下部にはシステム環境変数として20個近くあり、その中にはJavaに関連するPathがありますが、これは下記のように私がインストールしているjdk1.8.0_74用の環境変数となっています。 ・・・\Program Files\Java\ jdk1.8.0_74\bin; 環境変数の変更の方法を詳細に教えていただきたくお願いします。

  • heburusu
  • ベストアンサー率85% (140/164)
回答No.1

参考URLの"コンパイルできない"に確認手順が載っておりますので、 一度試されてはいかがでしょうか?

参考URL:
http://www.kohgakusha.co.jp/qa/qapreview.cgi?id=3534
taihey
質問者

補足

ご回答ありがとうございました。 教えていただいたサイト内容をヒントとして、私がダウンロード・インストールしたJava3Dを改めて調べてみました。 http://www.oracle.com/technetwork/java/javasebusiness/downloads/java-archive-downloads-java-client-419417.html#java3d-1.5.1-oth-JPR 上記のJava3Dのダウンロードサイトによれば、Java 3D 1.5.1 には、OSの違いなどにより7種類あります。 私のパソコン環境は、Windows7で64ビットであることから、7種類のうちの java3d-1_5_1-windows-amd64.exe をインストールした結果、JDK1.8.0_74をインストールしているフォルダにインストールできたのですが、先に質問に記載したように簡単なサンプルプログラムを実行することができませんでした。 それで、 java3d-1_5_1-windows-amd64.exe をアンインストールして、改めてダウンロードした、32ビット版と考えられる java3d-1_5_1-windows-i586.exe をインストールしてみたのですが、この場合は、PCの Program Files (X86)フォルダに強制的にインストールされてしまい、JDKと同じフォルダを選択してのインストールができません。 簡単なサンプルプログラムをjavacコマンドでコンパイルしようとするとJavacがみつからないとなってしまいます。 32ビット版JDKを、32ビット版 java3d-1_5_1-windows-i586.exe と同じProgram Files (X86)フォルダにインストールして、解決を図れるか、どのような解決策があるのでしょうか?

関連するQ&A