Получение библиотеки для правильного импорта в netbeans - PullRequest
4 голосов
/ 04 октября 2011

Так что я хочу возиться с библиотекой, которую я только что скачал, под названием stdlib.jar (скачано с http://introcs.cs.princeton.edu/java/stdlib/)

). Поэтому я добавил библиотеку в проект, и когда я проверяю проект, она выглядит следующим образомв netbeans: package inspector in netbeans

Таким образом, похоже, что библиотека настроена правильно.

Но тогда в моем проекте, когда я пытаюсь использовать один из классов библиотеки, это выглядит так.

My Custom Audio Player Class

Помещение над оператором импорта в верхней части говорит: expected "."
И если я изменяю оператор импорта, чтобы сказать import stlib.StdAudio , это говорит о том, что библиотека несуществует.
Кто-нибудь знает, в чем проблема?

Ответы [ 3 ]

1 голос
/ 17 декабря 2016

1) Избавиться от оператора импорта.

2) Избавиться от оператора пакета.

3) Поместить musicplayer.java непосредственно в папку / src

4) Щелкните правой кнопкой мыши по библиотекам в меню проекта и добавьте stdlib.jar

1 голос
/ 04 октября 2011

Весь исходный код этой библиотеки (что довольно необычно: впервые я столкнулся с этим) находится в пакете по умолчанию, что означает, что вам не нужно ничего импортировать , если ваш класс также находится в пакете по умолчанию . Просто используйте имя класса.

StdAudio.play(tone);

Просто убедитесь, что он находится в пути к классам, но я думаю, что это так, если я посмотрю на ваш скриншот из NetBeans.


Обновление : Кажется, я ошибаюсь. Внизу страницы вы можете найти это:

Q. Если я использую именованный пакет для структурирования своего кода, компилятор не может больше доступа к библиотекам в stdlib.jar. Почему нет?
A. Библиотеки в stdlib.jar находятся в пакете "default". В Java вы не можете получить доступ классы в пакете по умолчанию из именованного пакета. Если вам нужно использовать наши стандартные библиотеки с именованным пакетом, вы должны поставить наш библиотеки в пакете, как в этом решении.

Итак, вы должны скопировать классы в свой проект его пакет musicplayer.

0 голосов
/ 25 сентября 2014

Если вы используете учебник Седжвика или курс «Алгоритмы» на Coursera, это может помочь.

Как упоминалось выше, библиотеки в stdlib.jar находятся в ПАКЕТЕ ПО УМОЛЧАНИЮ. В Java вы не можете получить доступ к классам в пакете по умолчанию из именованного пакета. Таким образом, вы должны переместить ваши исходные файлы в ПАКЕТ ПО УМОЛЧАНИЮ вашего проекта. Это означает, что вам нужно переместить исходный файл musicplayer.java из папки ./src/MUSICPLAYER/ непосредственно в папку ./src вашего проекта, а затем удалить папку MUSICPLAYER. Также вы должны удалить «пакет MUSICPLAYER;» заявление в начале вашего исходного файла (ов).

По сути, это все, что вам нужно сделать. Теперь, когда вы переместили ваши исходные файлы в пакет по умолчанию и добавили «stdlib.jar» в библиотеки, у вас не возникнет проблем с обращением к классам из библиотеки. Вам не нужна никакая «импортная» оценка для них.

...