Как использовать библиотеки для алгоритмов, часть я Курс Курса в Eclipse - программирование
Подтвердить что ты не робот

Как использовать библиотеки для алгоритмов, часть я Курс Курса в Eclipse

Я начал курс Coursera Algorythms. Практические задания должны выполняться на Java, и они предлагают использовать DrJava в качестве IDE, но это действительно неудобно. Поэтому я бы хотел использовать Eclipse, но проблема в том, что я не смог использовать 2 библиотеки (algs4.jar и stdlib.jar), которые предусмотрены для этого курса. После выполнения шагов из этого руководства я смог включить их в свой проект:

enter image description here

но когда я пытаюсь использовать их классы в своем проекте, Eclipse не позволяет это сделать, и я не могу импортировать их с помощью Ctrl + Space:

enter image description here

И даже когда я пытаюсь напрямую импортировать класс, как import stdlib.StdRandom; это все еще не работает.

Что я могу сделать, чтобы заставить это работать должным образом?

4b9b3361

Ответ 1

Почему бы вам не использовать эти два JAR файла: stdlib-package.jar и algs4-package.jar.

И ниже кодовой страницы (http://algs4.cs.princeton.edu/code/)

Q. Если я использую именованный пакет для структурирования своего кода, компилятор больше не сможет обращаться к библиотекам в stdlib.jar или algs4.jar. Почему бы и нет?

а. Библиотеки в stdlib.jar и algs4.jar находятся в пакете "по умолчанию". В Java вы не можете получить доступ к классам в пакете по умолчанию из именованного пакета. Если вам нужно использовать наши библиотеки с именованным пакетом, вы можете использовать эти версии пакетов: stdlib-package.jar и algs4-package.jar.

Предупреждение: если вы принимаете Princeton COS 226 или Coursera, Алгоритмы, часть я или II, вы должны использовать проверку пакетов по умолчанию для наших библиотек, чтобы облегчить оценку.

Показывая мой успех теста: Showing my test success

Ответ 2

Вы не можете получить доступ к API, потому что авторы определили их в пакете по умолчанию, и Java не распознает их. Авторы упоминают на своем веб-сайте (http://algs4.cs.princeton.edu/code/), что, если вы используете их в именованных пакетах, настройте свой путь сборки, чтобы включить два баночки из http://algs4.cs.princeton.edu/code/stdlib-package.jar и http://algs4.cs.princeton.edu/code/algs4-package.jar.

НТН!

Ответ 3

Все, что вам нужно сделать, чтобы включить JAR, - это щелчок правой кнопкой мыши в верхней части дерева проекта/объекта в панели проводника проекта слева, выполните "Путь сборки/Настроить путь сборки", нажмите "Библиотеки", вкладку и "добавить внешние банки", добавьте их там.

Они должны с радостью стать доступными как при редактировании исходного кода, так и при его создании в Eclipse после этого.

Также обратите внимание, что, если у вас есть имя класса справа при вводе, вы можете навести курсор на имя класса в вашем коде, а функция intelli-sense/auto-complete предложит вам, откуда его импортировать. Вы можете легко добавить импорт в нужную библиотеку.

Ответ 4

Выполните следующие шаги

Щелкните правой кнопкой мыши свой проект > Свойства. Он откроет следующее окно

enter image description here

Выберите "Путь сборки Java" с левой стороны. Теперь выберите вкладку "Библиотеки" с правой стороны

enter image description here

Нажмите "Добавить внешние банки"

enter image description here

Добавьте файлы Jar.

Теперь вы закончили

Ответ 5

На своем веб-сайте: http://algs4.cs.princeton.edu/code/

Eclipse (руководство). Загрузите stdlib.jar и algs4.jar в папку и добавьте каждый файл jar в переменную classpath в путь сборки проекта через Project → > Properties → Java Build Path → Libaries → Добавить внешние JAR.

Ответ 7

Один из вариантов заключается в том, что существует maven repo on github, предоставляемый slok. Плохой частью этого являются добавленные банки, которые используют пакет по умолчанию, поэтому вы не можете использовать структуру пакета.

UPDATE. Я добавил версии пакета jar для репо и создал запрос на перенос, который теперь был принят.

Обратите внимание, что я изменил идентификаторы, чтобы они соответствовали исходной структуре пакета из Принстона.

<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>

Ответ 8

Если вы все еще ищете решение: -

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

Для справки: - https://introcs.cs.princeton.edu/java/stdlib/

Ответ 9

Я использую Gradle. В этом случае файл build.gradle должен иметь зависимость и может выглядеть так

repositories {
    jcenter()
}

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

После этого вы можете импортировать все что угодно в своем классе. Например:

import edu.princeton.cs.algs4.StdIn;

Ответ 10

Incase of Gradle, добавьте запись репозитория maven в раздел репозиториев build.gradle следующим образом:

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

Добавьте зависимость следующим образом:

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

В случае Maven добавьте запись в тег репозитория в build.xml следующим образом:

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

Добавьте зависимость следующим образом:

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