6
votes

Comment utiliser des cours dans des bibliothèques référencées dans Eclipse

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.

Y a-t-il une déclaration d'importation qui me manque?

Référence d'image:

Notez comment j'essaie d'utiliser BinarysSearch de la bibliothèque référencée, mais cela ne me propose pas une option d'utilisation ou d'importer.


2 commentaires

Vous pouvez faire Ctrl + Maj + o et Eclipse ajoutera les importations nécessaires. À partir de votre erreur, on dirait que vous manquez le pot contenant binaryssearch classe dans le chemin de construction.


J'ai le même problème ... avec le même algs4.jar :))


5 Réponses :


6
votes

Je ne suis pas sûr, je n'ai pas essayé ceci. Quelques interprétations cependant.

est-ce une bibliothèque standard ou une personne la créée par lui-même et vous a donné?

Le problème est la classe binaryssearch est dans le package par défaut . 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.

Si la classe est accessible, CTR + Maj + o doit importer la classe.


4 commentaires

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


@Jeffstern - Vous ne pouvez pas simplement décompresser et déplacer les fichiers .Class . Vous avez besoin de la source. Pour chaque fichier .java modifier la déclaration du package à quelque chose approprié, puis exporter comme pot. Les fichiers existants .class ont toujours une déclaration de package ancienne, c'est-à-dire défaut . 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.



2
votes

Notez que les classes des fichiers JAR sont toutes contenues dans le package par défaut.

Si vos classes sont ensuite contenues dans un emballage, ils ne seront pas directement accessibles.

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.


1 commentaires

C'est la bonne réponse. Les classes dans le package par défaut ne sont pas accessibles par des classes dans d'autres packages. Cela n'a rien à voir avec la bibliothèque de références.



6
votes

Je prends un algorithmes classe via Coursera qui utilise la bibliothèque de référence Algs4.jar.

le problème:

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.

la solution

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 .


0 commentaires

1
votes

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?

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.


0 commentaires

0
votes

Premièrement, BinarySearch ne peut pas être créé (constructeur privé). Utilisez la méthode statique binaireSearch.rank (clé INT, int [] tableau)

Deuxièmement, vous pouvez accéder à BinarysSearch uniquement à partir d'un package par défaut

troisièmement Qu'en est-il de arrayes.binaireRearch (tableau, clé) ?


0 commentaires