Java3D: Fout bij andere mensen

Status
Niet open voor verdere reacties.

NielsDesmet

Gebruiker
Lid geworden
19 mei 2008
Berichten
301
Hallo, ik heb niet zo veel ervaring met het gebruiken van custom Java libraries/extensies, maar ik heb eens geprobeerd om Java3D API te installeren.
Ik heb ook Sun's J3D tutorial gedownload, die ongecompileerde voorbeelden includeert.
Ik had met JCreator 3.5 een nieuw project gemaakt, met daarin het voorbeeldbestand HelloJava3Dd.java.
Ik includeer de juiste Java3D libraries in mijn Project Properties, ik compileer en run het, met succes (ik zie een draaiend kubusje zoals het zou moeten).
Ook als ik een htm bestand maak die deze class embed, werkt het.

Maar dan had ik de class tesamen met de htm eens doorgestuurd naar verschillende mensen (die Java geinstalleerd en geupdate hebben) maar zij krijgen een fout. Hier is de foutlog van een van die mensen ('tis bij iedereen hetzelfde):
Code:
Java Plug-in 1.6.0_11
Using JRE version 1.6.0_11 Java HotSpot(TM) Client VM
User home directory = C:\Documents and Settings\Tr4nn3
----------------------------------------------------
c:   clear console window
f:   finalize objects on finalization queue
g:   garbage collect
h:   display this help message
l:   dump classloader list
m:   print memory usage
o:   trigger logging
q:   hide console
r:   reload policy configuration
s:   dump system and deployment properties
t:   dump thread list
v:   dump thread stack
x:   clear classloader cache
0-5: set trace level to <n>
----------------------------------------------------


java.lang.NoClassDefFoundError: javax/media/j3d/Node
	at java.lang.Class.getDeclaredConstructors0(Native Method)
	at java.lang.Class.privateGetDeclaredConstructors(Unknown Source)
	at java.lang.Class.getConstructor0(Unknown Source)
	at java.lang.Class.newInstance0(Unknown Source)
	at java.lang.Class.newInstance(Unknown Source)
	at sun.plugin2.applet.Plugin2Manager.createApplet(Unknown Source)
	at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.ClassNotFoundException: javax.media.j3d.Node
	at sun.plugin2.applet.Applet2ClassLoader.findClass(Unknown Source)
	at java.lang.ClassLoader.loadClass(Unknown Source)
	at java.lang.ClassLoader.loadClass(Unknown Source)
	at java.lang.ClassLoader.loadClassInternal(Unknown Source)
	... 8 more
Caused by: java.io.FileNotFoundException: C:\Documents and Settings\Tr4nn3\Mijn documenten\Mijn ontvangen bestanden\javax\media\j3d\Node.class (Het systeem kan het opgegeven pad niet vinden)
	at java.io.FileInputStream.open(Native Method)
	at java.io.FileInputStream.<init>(Unknown Source)
	at java.io.FileInputStream.<init>(Unknown Source)
	at sun.net.www.protocol.file.FileURLConnection.connect(Unknown Source)
	at sun.net.www.protocol.file.FileURLConnection.getInputStream(Unknown Source)
	at sun.plugin2.applet.Applet2ClassLoader.getBytes(Unknown Source)
	at sun.plugin2.applet.Applet2ClassLoader.access$000(Unknown Source)
	at sun.plugin2.applet.Applet2ClassLoader$1.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	... 12 more
Exception: java.lang.NoClassDefFoundError: javax/media/j3d/Node

Wat is hier fout gelopen?
 
Waar heb je die class neergezet (dus in welke map op die doelcomputers)?
(Dit is als ik het goed begrepen heb): Kijk na welke mappen er in omgevingsvariabele CLASSPATH staan. Staan die zoals bij mij:
CLASSPATH=.;C:\Program Files\Java\jre6\lib\ext\QTJava.zip
dan zou het theoretisch moeten werken als de het class bestand en het .htm bestand in dezelfde map staan (dit vanwege de eerste 'map' die wordt genoemd: ., oftewel: de huidige map.

Verder weet ik het niet, maar misschien heb je er wat aan.

Tijs.
 
Heh.. Zou het ermee kunnen te maken hebben dat mijn Java versie verouderd is? Ik zit nog steeds met die 1.6.0_7 versie lol :p
 
Heh.. Zou het ermee kunnen te maken hebben dat mijn Java versie verouderd is? Ik zit nog steeds met die 1.6.0_7 versie lol :p

Lijkt me niet, want je schrijft dat je de gebruikte class er zelf bijlevert.
Of gebruik je ook classes die standaard bij de Jre worden meegeleverd en die mogelijk uit de Jre verwijderd zijn (bijv. omdat ze te oud zijn of buggy)?

Overigens zou het interessant zijn als je reageert op de volgende melding:
C:\Documents and Settings\Tr4nn3\Mijn documenten\Mijn ontvangen bestanden\javax\media\j3d\Node.class (Het systeem kan het opgegeven pad niet vinden)
Is Tr4nn3 een gebruiker die je software gekregen heeft, of ben je dat zelf? Er staat hier namelijk een volledig pad uitgeschreven.

Tijs.
 
Wel, ikzelf krijg geen enkele fout; Tr4nn3 is een van degenen aan wie ik de class en de htm gegeven heb om uit te testen. En tja, het is inderdaad vreemd dat Java die classes gaat gaan zoeken in zijn ontvangen bestanden (waar hij de bestanden heeft geplaatst en geopend).

Lijkt me niet, want je schrijft dat je de gebruikte class er zelf bijlevert.
Wel, voor alle duidelijkheid; Ik bedoel de applicatie die ik geschreven heb. Node.class enz. heb ik er niet bij gegeven (maar dat is ook niet nodig, want al die dingen zouden toch bij de jre moeten zitten..?)
 
Laatst bewerkt:
Verder op weg helpen met de tips die ik gegeven heb kan ik niet.
Zou je misschien alle aangeroepen classes in je applicatie kunnen 'importeren', zodat niemand afhankelijk is van de Jre?

Tijs.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan