# java 3D zum laufen bringen



## tanzverfuehrung (7. Jan 2013)

Ich wollte einfach mal ein einfaches 3DProgramm ausprobieren und wollte dem tutorial folgen!
Ich habe hier  java3D gedownloaded. 

Mein erstes Problem liegt darin, das ich nicht weiß, ob es reicht, wenn ich ein Java-Project anlege oder muss es ein Plugin-Project sein?

Ich habe es jetzt mit beidem versucht und habe den grundcode aus dem tutorial rein kopiert.

bei dem plugin-project habe ich in der manifest bei depenencies das java3d.jar hinzugefügt 
und somit lässt es sich schon mal complilieren.

bei dem java-project und auch bei dem plugin-project habe ich  ein 3DLib erstellt mit alle *.jars , die in der ZIp datei waren, hinzugefügt.

Ich kriege jetzt immer eine exception und zwar:


> Jan 07, 2013 1:32:18 PM javax.media.j3d.NativePipeline getSupportedOglVendor
> Schwerwiegend: java.lang.; no j3dcore-ogl-chk in java.library.path
> Exception in thread "main" java.lang.UnsatisfiedLinkError: no j3dcore-d3d in java.library.path
> at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1860)
> ...



ICh habe schon gegoogelt ohne ende.wo ich dann sowas finde, wie:


> To add the jar's to a specific project's classpath:
> 
> Right-click (or cmd-click on mac?) your project in the Project Explorer view and choose Properties > Java Build Path > Libraries.
> Add the folder "\System\Library\Java\Extensions" by clicking the "Add External Class Folder..." button
> ...



aber genau das habe ich ja eigentlich auch gemacht oder?
bzw arbeite ich mit eclipse indigo?ist das der fehler???

bzw habe ich auch gefunden:


> Include the .dll file in your system's classpath, and then restart eclipse.



jedoch hatte ich in meiner gedownloadet java3d datei garkiene *.dll datein also habe ich noch hier  die java 3d gedownloaded...und habe die *.dll datei unter >Build Path>Configure Build Path>Libararies>Add External Class Folder.... hinzugefügt.
eclipse neu gestartet und alles...jedoch kommt immer wieder diese s***** EXCEPTION!

und ich weiß nicht mehr weiter und bräuchte dringend hilfe!!!!!!!!!;(???:L


----------



## Marco13 (7. Jan 2013)

Mal schrittweise: Nach der Installation von Java3D sollte es ein Verzeichnis geben
C:\Programme\Java\Java3D...
Wenn das schon da ist: OK. 

In Eclipse muss man dann nur ein ganz normales Java-Projekt erstellen. Manchmal findet er die JARs dann automatisch, aber das hängt wohl von so vielen Faktoren ab, dass man davon nicht ausgehen kann. Im zweifelsfall muss man unter "Build Path -> Add External JAR" die JARs hinzufügen, die im Java3D/bin-Unterverzeichnis liegen (das ist eigentlich schlecht, weil man sich damit eine Abhängigkeit zu einem fest vorgegebenen Dateipfad einhandelt, aber sollte erstmal compilieren). Kopieren muss man da üblicherweise nichts, weder JARs noch DLLs...


----------



## tanzverfuehrung (7. Jan 2013)

also muss auch von der Java Archive Downloads -Java Client Technologies seite runtergladen werden?

Diese Seite Eclipse java3d plugins | Free Graphics software downloads at SourceForge.net , ist dann wahrscheinlich nicht die richtige odeR?


----------



## Marco13 (7. Jan 2013)

Ehrlich gesagt weiß ich gerade nicht, ob ich zuletzt von java.net oder oracle runtergeladen hatte, und ob das beides nicht vielleicht dieselbe Datei ist - auf jeden Fall hatte ich einen Installer (EXE) verwendet. Das Plugin habe ich noch nicht ausprobiert...


----------



## tanzverfuehrung (7. Jan 2013)

also ich habe jetzt Java Archive Downloads -Java Client Technologies installiert, und da hatte ich dann auch wirklich eine istallation vorher hatte ich immer nur *.zip ordner....
ich habe deinen schritten gefolgt, jedoch sind bei mir die *.jar's bei mir nicht im  Java3D/bin sondern im  Java3D\1.5.1\lib\ext . im bin ordner liegen  nur *.dll Datein.
Und ich kriege immer noch die  die Exception:



> Jan 07, 2013 4:01:10 PM javax.media.j3d.NativePipeline getSupportedOglVendor
> Schwerwiegend: java.lang.UnsatisfiedLinkError: no j3dcore-ogl-chk in java.library.path
> Exception in thread "main" java.lang.UnsatisfiedLinkError: no j3dcore-d3d in java.library.path
> at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1860)
> ...



ich habe auch eine datei j3dcore-ogl-chk.dll im /bin ordner.Jedoch weiß ich nicht was ich damit tun soll???:shock:


----------



## Marco13 (7. Jan 2013)

Jetzt solltest du in Eclipse links bei "Referenced Libraries" die Java3D-Jar rechtsklicken können, und dort dann irgendwo die "Native Library Location" festlegen können, auf genau diesen ordner. (Nochmal: Das könnte man ggf. auch "schöner" machen, aber ... damit's erstmal läuft...)


----------



## tanzverfuehrung (8. Jan 2013)

Marco13 hat gesagt.:


> Jetzt solltest du in Eclipse links bei "Referenced Libraries" die Java3D-Jar rechtsklicken können, und dort dann irgendwo die "Native Library Location" festlegen können, auf genau diesen ordner. (Nochmal: Das könnte man ggf. auch "schöner" machen, aber ... damit's erstmal läuft...)



ich habe drei *.jar datein
vecmath.jar
j3dcore.jar
j3dutils.jar

soll ich bei allen drei *.jar datein die "Native Library Location" festlegen ??
oder reicht das, wenn ich das bei einer mache?und ist egal bei welcher?

es funktioniert aufjedenfall schon und ich danke dir:toll::applaus:


----------



## Marco13 (9. Jan 2013)

AFAIR sollte es nur bei der "core" nötig sein. Wenn's nicht klappt, probier' ich die Prozedur nochmal selbst durch.


----------



## tanzverfuehrung (9. Jan 2013)

Marco13 hat gesagt.:


> AFAIR sollte es nur bei der "core" nötig sein. Wenn's nicht klappt, probier' ich die Prozedur nochmal selbst durch.



nein es klappt endlich und ich danke dir sehr!:applaus:


----------



## tanzverfuehrung (9. Jan 2013)

Ich habe jetzt noch eine Lösung gefunden, dass die exception nicht mehr auftritt und wollte fragen, ob die nun besser ist?

In der "Run Configuration" des Eclipse-Projekts  wird auf dem Karteireiter "Environment" eine neue Environment Variable "PATH" zugefügt, die auf das "bin"-Verzeichnis der Java3D-Implementation zeigt.


so funktioniert es aufjedenfall auch :idea:


----------



## Marco13 (9. Jan 2013)

Ja, das wäre eine der angedeuteten alternativen Möglichkeiten. Eine weitere ist, bei den VM-Arguments den -Djava.library.path=... anzugeben. (Eigentlich dachte ich, dass der Installer das Verzeichnis direkt zum PATH hinzufügt, aber bei neueren Versionen machte er das glaub' ich nicht mehr... :bahnhof: )


----------

