2012-11-22 9 views
5

Ich sehe java.lang.NoClassDefFoundError: org/omg/CORBA/InterfaceDef, wenn ich die Methode getMethod der java.lang.Class aufrufen. Ich versuche, die getEmsSession Methode in EmsSeeionFactory_I von TMF spezifischen Gläsern zu erhalten, die Reflexion verwenden. Aber wenn ich für die Klasse in jacorb.jar überprüft habe, ist org/omg/CORBA/InterfaceDef.class auf dem Klassenpfad verfügbar. Ich habe in anderen Foren gesehen und ich sehe keine Antwort für die gleiche Frage in diesen Foren. Es sieht so aus, als würde diese Ausnahme vom nativen VM-Code ausgelöst. Ich habe jetzt keine Ahnung mehr. Irgendwelche Ideen ? Kompletter Stack-Trace ist als untenjava.lang.NoClassDefFoundError: org/omg/CORBA/InterfaceDef

java.lang.NoClassDefFoundError: org/omg/CORBA/InterfaceDef 
     at java.lang.Class.getDeclaredMethods0(Native Method) 
     at java.lang.Class.privateGetDeclaredMethods(Class.java:2427) 
     at java.lang.Class.getMethod0(Class.java:2670) 
     at java.lang.Class.getMethod0(Class.java:2688) 
     at java.lang.Class.getMethod(Class.java:1603) 
+0

Was ist mit Ihrem Classpath ist? – tuergeist

+0

Ihr Classloader ist möglicherweise verwirrt. Haben Sie mehr als eine Instanz derselben JAR-Datei (en) auf Ihrem Klassenpfad? – Jeff

Antwort

2

NoClassDefFoundError bedeutet, dass die Klasse wurde während der Kompilierung gefunden, jedoch nicht während der Laufzeit gefunden. Die meiste Zeit haben Sie einen Unterschied zwischen dem Klassenpfad Ihrer Laufzeitumgebung und dem Klassenpfad Ihrer Kompilierungsumgebung. Und es wird funktionieren, nachdem Sie den Unterschied gefunden und behoben haben.

Wenn Sie überprüft haben, und Sie sind zu 100% sicher, dass der Classpath gleich sind, dann wird der Fehler komplizierter ist und Sie können dieses Tutorial lesen, das Problem zu lösen: http://javarevisited.blogspot.be/2011/06/noclassdeffounderror-exception-in.html

+0

Das hat mein Problem behoben, danke! –