it-roy-ru.com

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

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

enter image description here

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

enter image description here

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

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

19
Seekeer

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

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

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

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

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

Показаны результаты моего теста: Showing my test success

16
MorningFung

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

НТН!

9
OVB

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

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

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

5
John Humphreys - w00te

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

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

enter image description here

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

enter image description here

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

enter image description here

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

Теперь вы сделали

4
PeakGen

С их сайта: http://algs4.cs.princeton.edu/code/

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

2
tk_y1275963

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

UPDATE: я добавил пакеты репозитория в репозиторий и создал запрос на включение теперь это принято.

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

<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

Возможно, это связано с тем, что в библиотеках нет структуры пакетов, поэтому вы не можете импортировать из нее классы. Это может помочь вам, Как использовать классы в ссылочных библиотеках в Eclipse .

1
Khalid Amiri

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

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/

0
Bharat Gupta