Как использовать библиотеки для алгоритмов, часть я Курс Курса в 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;
это все еще не работает.
Что я могу сделать, чтобы заставить это работать должным образом?
Ответы
Ответ 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.
Ответ 6
Вероятно, потому, что в библиотеках нет структуры пакетов, поэтому вы не можете импортировать из нее классы. Это может помочь вам, Как использовать классы в ссылочных библиотеках в Eclipse.
Ответ 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>