Contexte personnel rapide: J'ai été embauché il y a quelques mois comme unique développeur .NET (C#) par une société dont les autres développeurs sont tous des dev php. Une semaine après le début du travail, on m'a dit qu'ils voulaient passer à Java au lieu de faire .NET. Ce n'est pas une situation idéale, mais j'essaie de le faire fonctionner. Je ne pense pas comprendre la relation entre la bibliothèque d'un projet et le chemin de la classe. J'utilise NetBeans 6.7.1 pour le développement. Mon projet actuel consiste à créer une application qui mettra à jour plusieurs sources marchandes (eBay, Amazon, etc.). J'ai créé un projet de bibliothèque de classes qui gère la planification de ces mises à jour. Nous l'appellerons Update.Problèmes de bibliothèque Java et de chemin de classe
Je suis en train de créer des projets de bibliothèque de classes pour les diverses sources (par exemple eBay). J'ai ajouté le projet ebay au projet Update en tant que bibliothèque. Dans l'EDI, il y a une boîte qui dit "Build Projects on Classpath" qui est cochée.
Enfin, en ce moment j'ai une petite application de console qui a le projet de mise à jour référencé comme une bibliothèque (de sorte que le projet ebay est maintenant 2 bibliothèques profondes) de la même manière. Cela fonctionne avec le code dans le projet de mise à jour.
Cela fonctionne bien jusqu'à ce que j'instancie une classe (à partir du projet Mettre à jour via l'application console) qui se trouve dans le projet ebay. À ce moment-là, je reçois un
Exception in thread "main"
java.lang.NoClassDefFoundError
qui est
Caused by: java.lang.ClassNotFoundException
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
Ces projets se construit à cette fin, mais exception d'exécution me tue. Je ne sais pas si je comprends vraiment ce que fait une bibliothèque pour un projet et s'il y a quelque chose de plus à faire pour rendre la classe accessible. Je suis habitué à pouvoir ajouter une référence à une DLL et être bon à faire. Je ne comprends pas pourquoi je n'obtiens aucune erreur de compilateur ou d'erreur de compilation, mais je reçois des erreurs d'exécution à propos de l'accessibilité. Je suppose que le classpath est une pièce manquante que je ne comprends pas très bien, même si je suppose que c'est possible que ce problème ait à voir avec autre chose.
Merci pour la publication. Il s'est avéré que cela avait à voir avec les problèmes référentiels dans NetBeans (voir ma propre réponse à cette question). J'ai fait l'hypothèse (incorrecte) qu'un projet était autonome - que s'il avait toutes les références établies pour lui-même que tout ce qui utilisait ce projet pouvait simplement référencer le projet lui-même - sans avoir besoin de référencer toutes les pièces, le projet référencé était aussi en utilisant. –