ClassNotFoundException bei jar export

TRX

Mitglied
Hi @All,

ich programmiere unter Mac mit der Eclipse IDE gerade eine kleine Satelliten Simulation, diese wollte ich nun exportieren um sie einen Freund zu schicken damit er sie sich einmal angucken kann ( er hat Windows) .
Folgendes Problem:
Exception in thread "main" java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoa
der.java:58)
Caused by: java.lang.NoClassDefFoundError: apple/awt/CGraphicsDevice
at javax.media.j3d.GraphicsConfigTemplate3D.<clinit>(GraphicsConfigTempl
ate3D.java:55)
at satsys.SatelliteSystem.<init>(SatelliteSystem.java:48)
at satsys.SatelliteSystem.main(SatelliteSystem.java:105)
... 5 more
Caused by: java.lang.ClassNotFoundException: apple.awt.CGraphicsDevice
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 java.lang.ClassLoader.loadClass(Unknown Source)
... 8 more

Ich versteh das Problem als solches schon, er findet die Klasse apple.awt.CGraphicsDevice nicht.
Von meinen Imports her bräuchte er die Datei aber auch nicht...
Ich import nämlich java.awt.*; und nicht apple.awt.*; , also versteh ich nicht warum er das nicht so macht wie angegeben....

Hoffe ihr könnt mir weiterhelfen!

Gruß
TRX

P.S: Bei mir funktioniert alles ausgezeichnet!
 
Zuletzt bearbeitet von einem Moderator:
SCheint als würdest du Java 3D verwenden und auf einem Mac entwickeln? Dein Freund wird wohl ein anderes Betriebssystem verwenden und die platformspezifischen Java 3D Bibliotheken liegen für dieses OS nicht vor.
 
erstmal danke für deine Antwort!

Zu den Bibliotheken:
Die Bilbliothek mit apple.awt , verwende ich ja eigentlich gar nicht, deshalb verstehe ich auch nicht warum er die will?

Un die Java3D Bilbliotheken exportiere ich mit , von daher müsste er die auch haben..


Ja ich verwende Mac und mein Freund Windows.
 
Zuletzt bearbeitet:
ok dass heißt man kann keine java3d Programme auf dem Mac entwickeln,oder?

Kurze Frage noch, warum meckert der dann eigentlich bei der AWT ? Die ist doch Standart und nicht platformspezifisch....
 
ok dass heißt man kann keine java3d Programme auf dem Mac entwickeln,oder?
Doch, kann man. Man muss allerdings dafür sorgen das die plattformspezifischen Libraries passend für die jeweilige Plattform ausgeliefert werden und das tust du derzeit nicht. Du verpackst Mac spezifische Libraries und erwartest das die überall funktionieren.


Kurze Frage noch, warum meckert der dann eigentlich bei der AWT ? Die ist doch Standart und nicht platformspezifisch....
Weil die von dir verwendete Implementierung der 3D Interfaces offensichtlich Klassen aus einem Package apple.awt benötigen. Das ist ein technisches Detail das daher kommt das du auf einem Windows System gegen Mac Libraries linkst, stör dich nicht daran.
 
Webstart ist zB eine Möglichkeit. Ansonsten kannst du auch ein Paket pro Betriebssystem + Architektur Kombination bauen (Windows 32/64bit, Mac32/64bit, Linux 32/64bit,...)
 
ok bei Webstart werden dann "automatisch" die passenden Bibliotheken mit heruntergeladen..

Muss ich dann für die einzelnen Pakete die auch auf den jeweiligen Betriebssystemen kompilieren oder geht das auch einfacher?
 
Hängt von der konkreten Bibliothek ab. Üblicherweise ist das nicht nötig, das Programm muss nur mit der passenden Bibliothek gestartet werden
 
In meinem Fall wären das die Bibliotheken:
j3dcore.jar
j3dutils.jar
vecmath.jar

Würde es mit diesen gehen und wenn ja wär ein kleines Beispiel cool...
 

Zurück
Oben