J'ai importé le fichier algs4.jar comme une bibliothèque référencée comme indiqué ci-dessus. Tout semble aller bien mais je ne peux pas sembler utiliser ou accéder aux classes de la bibliothèque. P>
Y a-t-il une déclaration d'importation qui me manque? p>
Référence d'image: P>
p>
Notez comment j'essaie d'utiliser BinarysSearch code> de la bibliothèque référencée, mais cela ne me propose pas une option d'utilisation ou d'importer. P>
5 Réponses :
Je ne suis pas sûr, je n'ai pas essayé ceci. Quelques interprétations cependant. P>
est-ce une bibliothèque standard ou une personne la créée par lui-même et vous a donné? p>
Le problème est la classe Si la classe est accessible, binaryssearch code> est dans le package code> par défaut code>. Vous ne pourrez pas l'importer. Si cette bibliothèque est créée par vous, ou par n'importe lequel de votre ami, vous devez demander à votre ami de déplacer toutes les classes du package par défaut à un bon espace de noms, puis de recréer le pot. P>
CTR + Maj + o code> doit importer la classe. P>
C'est ce que j'ai commencé à penser. Donc, j'ai décompressé le bocal l'a ajouté dans un paquet. Maintenant, je peux utiliser une déclaration d'importation ("com.package. *") Et je peux même créer une nouvelle référence à la classe ("Binarysearch BS = New BinarySearch ()". Cependant, sur l'exécution, je reçois une classification de classe.
En outre, je reçois aussi ce message d'erreur: exception dans le fil "Main" Java.lang.noclassDeffondesRORROR code>
@Jeffstern - Vous ne pouvez pas simplement décompresser et déplacer les fichiers .Class code>. Vous avez besoin de la source. Pour chaque fichier
.java code> modifier la déclaration du package à quelque chose approprié, puis exporter comme pot. Les fichiers existants
.class code> ont toujours une déclaration de package ancienne, c'est-à-dire
défaut code>. Les déplacer sur le paquet souhaité ne changera pas la déclaration de package et que votre importation ne fonctionnera pas.
Mm oui, ça a du sens. Je retournerai au créateur original de la bibliothèque et voyez s'ils peuvent le recréer avec une structure de paquet standard. Merci.
Notez que les classes des fichiers JAR sont toutes contenues dans le package par défaut. P>
Si vos classes sont ensuite contenues dans un emballage, ils ne seront pas directement accessibles. P>
Je soumets cette réponse parce que je prends le cours d'algorithmes auquel appartiennent ces fichiers JAR et que c'était la cause spécifique de mon programme ne fonctionnant pas. p>
C'est la bonne réponse. Les classes dans le package code> par défaut code> ne sont pas accessibles par des classes dans d'autres packages. Cela n'a rien à voir avec la bibliothèque de références.
Je prends un algorithmes classe via Coursera qui utilise la bibliothèque de référence Algs4.jar. p>
Le problème que vous rencontrez est que la bibliothèque de référence est située dans le package par défaut et la source dans laquelle vous accédez à la bibliothèque de référence n'est pas. P>
Toutes les classes de votre projet doivent être dans le package par défaut, sinon les bibliothèques de référence (qui sont situées dans le paquet par défaut) ne seront pas reconnues. Vos classes de projet doivent être dans le répertoire SRC et vous ne devez pas déclarer un package au début de vos fichiers .java. De plus, vous devez également vous assurer que votre a ajouté la référence Bibliothèques à votre chemin de construction . P>
Si vous souhaitez importer les classes, vous devez télécharger la version emballée de la bibliothèque. Voir la section Q & A au bas de cette page Web. http://Introcs.cs.princeton.edu/java/stdlib/ < / p>
q. Si j'utilise un package nommé pour structurer mon code, le compilateur ne peut plus accéder aux bibliothèques de STDLIB.JAR. Pourquoi pas? P>
a. Les bibliothèques de stdlib.jar sont dans le package "Par défaut". En Java, vous ne pouvez pas accéder aux classes dans le package par défaut à partir d'un package nommé. Si vous devez utiliser nos bibliothèques avec un package nommé, vous pouvez utiliser la version emballée stdlib-package.jar. P> blockQuote>
Premièrement, BinarySearch ne peut pas être créé (constructeur privé). Utilisez la méthode statique Deuxièmement, vous pouvez accéder à BinarysSearch uniquement à partir d'un package par défaut fort> p>
troisièmement Qu'en est-il de binaireSearch.rank (clé INT, int [] tableau) code> p>
arrayes.binaireRearch (tableau, clé) code>? p>
Vous pouvez faire
Ctrl + Maj + o code> et Eclipse ajoutera les importations nécessaires. À partir de votre erreur, on dirait que vous manquez le pot contenant
binaryssearch code> classe dans le chemin de construction.
J'ai le même problème ... avec le même algs4.jar :))