it-swarm.com.de

Coursera-Kurs in Eclipse

Ich habe Coursera Algorythms Kurs begonnen. Übungsaufgaben müssen auf Java gemacht werden und sie schlagen vor, DrJava als IDE zu verwenden, aber es ist wirklich unbequem. Ich würde gerne Eclipse verwenden, aber das Problem ist, dass ich nicht zwei Bibliotheken ( algs4.jar und stdlib.jar ) verwenden kann, die dafür vorgesehen sind Kurs. Nachdem ich die Schritte aus dieser Anleitung ausgeführt hatte, konnte ich sie in mein Projekt aufnehmen:

enter image description here

wenn ich jedoch versuche, ihre Klassen in meinem Projekt zu verwenden, lässt Eclipse dies nicht zu und ich konnte sie nicht mit importieren Ctrl + Space:

enter image description here

Und selbst wenn ich versuche, Klassen wie import stdlib.StdRandom; direkt zu importieren, funktioniert das immer noch nicht.

Was kann ich tun, damit es richtig funktioniert?

19
Seekeer

Warum verwenden Sie nicht diese beiden JARs - stdlib-package.jar und algs4-package.jar.

Und unter der Codepage ( http://algs4.cs.princeton.edu/code/ )

F. Wenn ich ein benanntes Paket zum Strukturieren meines Codes verwende, kann der Compiler nicht mehr auf die Bibliotheken in stdlib.jar oder algs4.jar zugreifen. Warum nicht?

A. Die Bibliotheken in stdlib.jar und algs4.jar befinden sich im "Standard" -Paket. In Java können Sie nicht über ein benanntes Paket auf Klassen im Standardpaket zugreifen. Wenn Sie unsere Bibliotheken mit einem benannten Paket verwenden müssen, können Sie die folgenden Paketversionen verwenden: stdlib-package.jar und algs4-package.jar.

Warnung: Wenn Sie Princeton COS 226 oder Coursera, Algorithms, Part I oder II verwenden, müssen Sie die Standardpaketversion unserer Bibliotheken verwenden, um die Einstufung zu erleichtern.

Zeige meinen Testerfolg: Showing my test success

16
MorningFung

Sie können nicht auf die APIs zugreifen, da die Autoren sie im Standardpaket definiert haben und Java diese nicht erkennt. Die Autoren erwähnen auf ihrer Website ( http://algs4.cs.princeton.edu/code/ ), dass Sie, wenn Sie diese in benannten Paketen verwenden, Ihren Erstellungspfad so konfigurieren, dass die beiden Jars von http enthalten sind: //algs4.cs.princeton.edu/code/stdlib-package.jar und http://algs4.cs.princeton.edu/code/algs4-package.jar .

HTH!

9
OVB

Alles, was Sie tun müssen, um die JARs einzuschließen, ist einen Rechtsklick auf den oberen Rand Ihres Projekt-/Objektbaums im Projekt-Explorer auf der linken Seite, "Build Path/Configure Build Path" (Pfad erstellen/Pfad konfigurieren), klicken Sie auf die Registerkarte "Libraries" (Bibliotheken) und "fügen Sie externe Gläser hinzu", fügen Sie sie dort hinzu.

Sie sollten sowohl beim Bearbeiten des Quellcodes als auch beim anschließenden Erstellen in Eclipse verfügbar sein.

Beachten Sie auch, dass Sie, vorausgesetzt, Sie haben den Klassennamen bei der Eingabe richtig eingegeben, in der Lage sein sollten, über den Klassennamen in Ihrem Code zu schweben, und die Intelli-sense/Auto-Vervollständigungsfunktion vorschlägt, wo Sie ihn importieren sollen. Auf diese Weise können Sie den Import problemlos zur richtigen Bibliothek hinzufügen.

Befolgen Sie die folgenden Schritte

Klicken Sie mit der rechten Maustaste auf Ihr Projekt> Eigenschaften. Es öffnet sich folgendes Fenster

enter image description here

Wählen Sie "Java Build Path" auf der linken Seite. Wählen Sie nun die Registerkarte "Bibliotheken" auf der rechten Seite

enter image description here

Klicken Sie auf "Externe Gläser hinzufügen"

enter image description here

Fügen Sie die Jar-Dateien hinzu.

Jetzt bist du fertig

4
PeakGen

Von ihrer Website: http://algs4.cs.princeton.edu/code/

Eclipse (manuell). Laden Sie stdlib.jar und algs4.jar in einen Ordner herunter und fügen Sie jede jar> -Datei über Projekt -> Eigenschaften -> Java-Erstellungspfad -> Bibliotheken -> Externe JARs hinzufügen zur Variablen classpath zum Erstellungspfad eines Projekts hinzu.

2
tk_y1275963

Eine Option ist, dass es ein Maven Repo auf Github gibt bereitgestellt von Slok . Das Schlimme daran ist, dass die Jars hinzugefügt wurden, die das Standardpaket verwenden, sodass Sie keine Paketstruktur verwenden können.

UPDATE: Ich habe die Paketversionen des Glases zum Repo und hinzugefügt hat eine Pull-Anfrage erstellt es wurde jetzt akzeptiert.

Beachten Sie, dass ich die Bezeichner so geändert habe, dass sie mit der ursprünglichen Paketstruktur von Princeton übereinstimmen.

<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

Dies liegt wahrscheinlich daran, dass die Bibliotheken keine Paketstruktur aufweisen, sodass Sie keine Klassen daraus importieren können. Dies könnte Ihnen helfen, Wie Klassen in referenzierten Bibliotheken in Eclipse verwendet werden .

1
Khalid Amiri

Wenn Sie noch auf der Suche nach einer Lösung sind: -

OS X/Linux

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

Windows

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

Zur Referenz: - https://introcs.cs.princeton.edu/Java/stdlib/

0
Bharat Gupta

Fügen Sie bei Gradle den Maven-Repository-Eintrag im Repository-Abschnitt von build.gradle wie folgt hinzu:

repositories {
    mavenCentral()
    maven {
        url 'https://dl.bintray.com/algs4/maven/'
    }
}

Fügen Sie die Abhängigkeit wie folgt hinzu:

compile group: 'edu.princeton.cs', name: 'algs4', version: '1.0.4'

Fügen Sie im Fall von Maven den Eintrag im Repository-Tag in build.xml wie folgt hinzu:

<repositories>
  <repository>
    <id>org.coursera.algs4</id>
    <name>Algs4 lib</name>
    <url>https://dl.bintray.com/algs4/maven/</url>
  </repository>
</repositories>

Fügen Sie die Abhängigkeit wie folgt hinzu:

<dependencies>
  <dependency>
    <groupId>edu.princeton.cs</groupId>
    <artifactId>algs4</artifactId>
    <version>1.0.4</version>
  </dependency>
</dependencies>
0
Sanju Varghese

Ich benutze Gradle. In diesem Fall sollte die Datei build.gradle eine Abhängigkeit haben und kann so aussehen

repositories {
    jcenter()
}

dependencies {
    compile 'edu.princeton.cs:algs4:1.0.3'
}

Danach können Sie in Ihrer Klasse alles davon importieren. Zum Beispiel:

import edu.princeton.cs.algs4.StdIn;
0
Kate