Erste Schritte import javax.media.3d....; //Fehlermeldung: cannot be resolved

Nuada

Mitglied
Hallo,
ich fange gerade an mich in Java und Eclipse einzuarbeiten und habe von einem 3D Tutorial einen Code in Eclipse kopiert. (Diesen hier: Simple 3D Demo : 3D Basics3DJava )
Allerdings bekomme ich bei jeder "import javax.media.j3d...;" und "import com.sun.j3d...;"
Zeile den Fehler "The import javax.media cannot be resolved."

Kann mir jemand erklären woher ich diese Bibliotheken bekomme, bzw.wie ich diese einbinde?
Installiert habe ich: Java3D, jdk1.7.0, jre7 und Eclipse.
Vielen Dank
 
Zuletzt bearbeitet:
Die entsprechenden JARs sollten im Java3D\lib\ext-Verzeichnis liegen, wenn man die einbindet sollte es gehen ...

EDIT: Ach, um das "WIE" ging es auch: Project->Properties->Java Build Path->Add external JAR oder so...
 
Vielen Dank, die Fehlermeldungen sind jetzt weg. Leider kann ich noch immer nicht fehlerfrei kompilieren. In der Konsole erhalte ich folgende Meldungen:

Exception in thread "main" java.lang.UnsatisfiedLinkError: no j3dcore-ogl in java.library.path
at java.lang.ClassLoader.loadLibrary(Unknown Source)
at java.lang.Runtime.loadLibrary0(Unknown Source)
at java.lang.System.loadLibrary(Unknown Source)
at javax.media.j3d.NativePipeline$1.run(NativePipeline.java:189)
at java.security.AccessController.doPrivileged(Native Method)
at javax.media.j3d.NativePipeline.loadLibrary(NativePipeline.java:180)
at javax.media.j3d.NativePipeline.loadLibraries(NativePipeline.java:137)
at javax.media.j3d.MasterControl.loadLibraries(MasterControl.java:948)
at javax.media.j3d.VirtualUniverse.<clinit>(VirtualUniverse.java:280)
at javax.media.j3d.Canvas3D.<clinit>(Canvas3D.java:3862)
at training.HelloWorld.main(Würfel1.java:24)


Könnt ihr mir hier auch weiterhelfen?



@Camill: Du hast natürlich Recht. Habe allerdings ein Projekt, für das mir nur begrenzte Zeit zur Verfügung steht. Daher kann ich mich nicht ausschließlich mit Grundlagen beschäftigen.
 
Hmja, schon bei den JARs war ich mir nicht sicher, ob das nötig sein sollte, aber spätestens jetzt muss man sagen, dass da anscheinend mit der Installation von Java3D was schiefgegangen ist. Vielleicht nochmal (ggf. als Administrator) De- und dann Neuinstallieren. Ansonsten könnte man zusehen, dass man den PATH in den Umgebungsvariablen manuell so anpasst, dass er den Pfad zur "j3dcore-ogl.dll" enthält, die auch irgendwo im Java3D-Ordner rumliegen sollte. Irgendwie kriegt man's schon zum Laufen.
 
Die Neuinstallation von Java3d hat leider nicht das gewünschte Ergebnis gebracht. (In Win7 mit Admin rechten deinstalliert, neugestartet und nocheinmal neu installiert).

Den Pfad der Umgebungsvariable habe ich anhand dieser Anleitung versucht zu ändern:
http://www.java-forum.org/einfuehru...umgebungsvariable-einstellen-windows-7-a.html

jedoch mit folgenden Änderungen für Java3D:

bei Systemvariablen:
neue Systemvariable: Java_3d_umgvar
Pfad: C:\Program Files\Java\Java3D\1.5.1\bin

Leider habe ich nach wie vor die gleichen Fehlermeldungen. Hat jemand eine Idee?
 
neue Systemvariable: Java_3d_umgvar
Pfad: C:\Program Files\Java\Java3D\1.5.1\bin

Hm... "irgendeine" Varaible wird's nicht tun 😉 Bei den unteren gibt es schon eine, die "PATH" heißt. Zu deren Wert kannst du am Ende den Pfad hinzufügen, durch Semikolon abgetrennt:
C:\das\war\schon\vorhanden\;C:\Program Files\Java\Java3D\1.5.1\bin

(falls in dem bin-Verzeichnis die gesuchte DLL liegt - müßt' ich jetzt nachsehen).

Nochmal: Eigentlich sollte das nach einer richtigen Installation nicht nötig sein, aber vielleicht hakt die Installation auf Windows 7 (hatte es bisher immer nur auf XP ... obwohl es dann tendenziell (abgesehen von Admin-Rechte-Kram) ja auch auf 7 gehen sollte...)
 
Vielen Dank Marco, hat jetzt funktioniert. 🙂
Leider hab ich jetzt wieder neue Fehlermeldungen:

Exception in thread "main" java.lang.NullPointerException: Canvas3D: null GraphicsConfiguration
at javax.media.j3d.Canvas3D.checkForValidGraphicsConfig(Canvas3D.java:963)
at javax.media.j3d.Canvas3D.<init>(Canvas3D.java:1006)
at training.HelloWorld.main(Würfel1.java:24)
 
Juhuuu es lebt :-D
Habe wie im Link beschrieben

Canvas3D canvas = new Canvas3D(null);

durch

GraphicsConfiguration config =
SimpleUniverse.getPreferredConfiguration();
Canvas3D canvas = new Canvas3D(config);

ersetzt und noch "java.awt.GraphicsConfiguration;" importiert.

Vielen Dank für Eure Hilfe🙂
 
wobei diesmal wirklich Pech falls das Tutorial falsch sein sollte:

In der tat verwenden noch hunderte von "alten" Beispielen das 'null' als Argument. Wieder ein Zeichen dafür, wie schwer es ist, eine API zu ändern - wobei man sich schon fragen könnte, warum im Konstruktor nicht sowas steht wie [c]if (c == null) c = dasPreferredDing();[/c] :bahnhof:
 

Neue Themen


Zurück
Oben