J'ai un problème où NoClasDefFoundError est levé. Cela me laisse perplexe puisque j'utilise des interfaces, et aucune définition de classe ne devrait être disponible. J'ai lu quelques articles qui pointent vers Classpath, mais je ne crois pas que ce soit le problème ici (même si je peux me tromper). J'utilise NetBeans 6.9.1 IDE.NoClassDefFoundError
J'ai créé un exemple de configuration pour reproduire le problème. Quatre projets: Interfaces, Objets, Localisateur et Consommateur. Vous trouverez ci-dessous les implémentations. Lors de l'exécution, le consommateur coplains à propos de l'implémentation manquante de SomeObject, dont il ne devrait pas être conscient car il accepte l'interface.
Exception in thread "main" java.lang.NoClassDefFoundError: objects/SomeObject
Que manque-t-il?
package interfaces;
public interface ISomeInterface { }
package objects;
import interfaces.ISomeInterface;
public class SomeObject implements ISomeInterface{ }
package locator;
import interfaces.ISomeInterface;
import objects.SomeObject;
public class Locator { public static ISomeInterface LocateImplementation() { return new SomeObject(); }}
package consumer;
import interfaces.ISomeInterface;
import locator.Locator;
public class Main { public static void main(String[] args) { ISomeInterface object = Locator.LocateImplementation(); }}
Merci à tous pour de grandes réponses !! C'était un problème de classpath après tout. Je ne savais pas que le consommateur avait aussi besoin de voir des "objets", malgré le fait que "locator" les avait dans son classpath. –