web-dev-qa-db-fra.com

Comment utiliser les bibliothèques pour la partie I des algorithmes Coursera sur Eclipse

J'ai commencé Coursera cours d'algorythme . Les exercices pratiques doivent être faits sur Java et ils suggèrent d'utiliser DrJava comme IDE, mais c'est vraiment peu pratique. J'aimerais donc utiliser Eclipse, mais le problème est que je ne pouvais pas utiliser 2 bibliothèques ( algs4.jar et stdlib.jar ), qui sont fournies pour cela. cours. Après avoir suivi les étapes de ce guide , j'ai pu les inclure dans mon projet:

enter image description here

mais lorsque j'essaie d'utiliser leurs classes dans mon projet, Eclipse ne le permet pas, et je ne pouvais pas les importer en Ctrl + Space:

enter image description here

Et même lorsque j'essaie directement d'importer une classe telle que import stdlib.StdRandom;, cela ne fonctionne toujours pas.

Que puis-je faire pour que cela fonctionne correctement?

19
Seekeer

Pourquoi n'utilisez-vous pas ces deux fichiers JAR - stdlib-package.jar et algs4-package.jar.

Et en dessous de la page de code ( http://algs4.cs.princeton.edu/code/ )

Q. Si j'utilise un paquet nommé pour structurer mon code, le compilateur ne peut plus accéder aux bibliothèques dans stdlib.jar ou algs4.jar. Pourquoi pas?

A. Les bibliothèques dans stdlib.jar et algs4.jar sont dans le paquet "default". En Java, vous ne pouvez pas accéder aux classes du package par défaut à partir d'un package nommé. Si vous devez utiliser nos bibliothèques avec un paquet nommé, vous pouvez utiliser les versions de paquet suivantes: stdlib-package.jar et algs4-package.jar.

Attention: si vous utilisez Princeton COS 226 ou Coursera, Algorithms, Part I ou II, vous devez utiliser la version par défaut des packages de nos bibliothèques pour faciliter la notation.

Montrant mes tests réussis: Showing my test success

16
MorningFung

Vous ne pouvez pas accéder aux API car les auteurs les ont définies dans le package par défaut et Java ne les reconnaît pas. Les auteurs mentionnent sur leur site Web ( http://algs4.cs.princeton.edu/code/ ) que si vous les utilisez dans des packages nommés, configurez votre chemin de construction pour inclure les deux fichiers jar de http: //algs4.cs.princeton.edu/code/stdlib-package.jar et http://algs4.cs.princeton.edu/code/algs4-package.jar .

HTH!

9
OVB

Pour inclure les fichiers JAR, il vous suffit de cliquer avec le bouton droit de la souris sur le haut de votre arborescence de projets/objets dans le panneau Explorateur de projets situé à gauche, de faire "Chemin de construction/Configurer le chemin de construction", cliquez sur l'onglet "Bibliothèques", puis "ajouter des pots externes", ajoutez-les là.

Ils devraient volontiers devenir disponibles à la fois lors de l'édition de votre code source et lors de sa construction ultérieure dans Eclipse.

Notez également que, en supposant que le nom de classe soit correct lorsque vous tapez, vous devriez pouvoir survoler le nom de la classe dans votre code et la fonctionnalité intelli-sense/auto-complete vous suggérera d'où vous devez l'importer. Vous pouvez ainsi facilement importer l'importation dans la bibliothèque appropriée.

5

Suivez les étapes ci-dessous

Faites un clic droit sur votre projet> Propriétés. Cela ouvrira la fenêtre suivante

enter image description here

Sélectionnez "Java Build Path" sur le côté gauche. Maintenant, sélectionnez l'onglet "Bibliothèques" à droite

enter image description here

Cliquez sur "Ajouter des bocaux externes"

enter image description here

Ajoutez les fichiers Jar.

Maintenant vous avez fini

4
PeakGen

De leur site Web: http://algs4.cs.princeton.edu/code/

Eclipse (manuel). Téléchargez les fichiers stdlib.jar et algs4.jar dans un dossier et ajoutez chaque fichier jar> à la variable classpath dans le chemin de génération d'un projet via Projet ->> Propriétés -> Chemin de construction Java -> Bibliothèques -> Ajouter des JAR externes.

2
tk_y1275963

Une option est qu'il y ait un repo maven sur github fourni par slok . La mauvaise partie de ceci est les fichiers jars ajoutés étaient ceux qui utilisaient le paquet par défaut, vous ne pouvez donc pas utiliser une structure de paquet.

UPDATE: J'ai ajouté les versions de package du fichier jar au référentiel et créé une demande de tirage il a maintenant été accepté.

Notez que j'ai modifié les identifiants pour qu'ils correspondent à la structure de package d'origine de Princeton.

<dependencies>
  <dependency>
    <groupId>edu.princeton.cs.introcs</groupId>
    <artifactId>algs4-package</artifactId>
    <version>1.0</version>
  </dependency>

  <dependency>
    <groupId>edu.princeton.cs.introcs</groupId>
    <artifactId>stdlib-package</artifactId>
    <version>1.0</version>
  </dependency>
</dependencies>

<repositories>
  <repository>
    <id>org.coursera.algs4</id>
    <name>Algs4 coursera course custom repository</name>
    <url>https://raw.github.com/slok/algs4-mvn-repo/master</url>
  </repository>
</repositories>
1
Brett Ryan

C'est probablement parce qu'il n'y a pas de structure de paquet dans les bibliothèques, vous ne pouvez donc pas en importer de classes. Cela pourrait vous aider, Comment utiliser les classes dans les bibliothèques référencées dans Eclipse .

1
Khalid Amiri

Si vous êtes toujours à la recherche de la solution: -

OS X/Linux

% javac -cp .:stdlib.jar MyProgram.Java % Java -cp .:stdlib.jar MyProgram

Les fenêtres

% javac -cp .;stdlib.jar MyProgram.Java % Java -cp .;stdlib.jar MyProgram

Pour référence: - https://introcs.cs.princeton.edu/Java/stdlib/

0
Bharat Gupta