Ограничение доступа к классу из-за ограничений на требуемую библиотеку

Я получаю это сообщение об ошибке в Eclipse:

Access restriction: The type DirectoryWalker is not accessible
due to restriction on required library 
/Library/Java/Extensions/commons-io-1.4.jar

что это значит? Там этот другой вопрос SO по той же теме, но в этом случае он, похоже, не применяется. Я не создаю новый класс java, я пытаюсь использовать его.

Ответ 1

Угадывание другой библиотеки, которую вы используете, также требует ввода/вывода Apache Commons, но другой версии. Наличие части кода (транзитно) имеет доступ к двум версиям одного и того же пакета, немного сложнее. Вы, вероятно, можете организовать его, чтобы ваш код и другая библиотека использовали одну и ту же версию. С CLASSPATH все намного проще!:)

Ответ 2

перейдите в путь сборки java и на вкладке Библиотека удалите библиотеку JRE. Затем снова добавьте библиотеку → Системная библиотека JRE

Работал для меня

Ответ 3

Это моя наименее любимая ошибка, я столкнулся с ней несколько раз, и "ограничение на требуемую библиотеку" достаточно скучно, чтобы вы не почесали голову. Однако его легко исправить.

Самый быстрый способ (я использую Helios) - перейти в Window- > Preferences- > Java- > Compiler- > Errors/Warnings, найти и открыть маркер "Устаревший и ограниченный API" и установить запрет и запрет Ссылка на что-то другое, кроме Error.

"Предупреждение" обычно лучше всего, поскольку что-то там, на Земле Java, запускает это, и вам, вероятно, нужна сноска. @SuppressWarnings и его двоюродные братья, 98% времени, оказывают такое же влияние на программистскую личную и социальную логику, как, например, простой эфир. Но это только мой скромный анализ.

Удачи!

Ответ 4

Для чего это стоит, у меня тоже была эта ошибка (другая библиотека).

My IDE (MyEclipse) ссылается на определенную библиотеку как часть общего пути к проекту, но у меня также была копия соответствующего JAR в моей папке расширений Java.

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

Ответ 5

Настройки пути сборки проекта → вкладка "Библиотеки" → выберите Системную библиотеку JRE → Кнопка "Редактировать" → перейдите на вкладку "Радио среды выполнения", в которой говорится, что J2SE 1.x(jdk1.6.0_21) для рабочего пространства по умолчанию JRE (jdk1.6.0_21) ) [Собрано]

Это лучшее решение наверняка!

Ответ 6

У меня была такая же ошибка, как я исправил установку рабочей области JRE по умолчанию, как и проект, у меня был JRE6 для рабочей области, а JRE7 для проекта, как для JRE7, исправил проблему

Ответ 7

Если вы используете m2eclipse, я нахожу, что "Обновить конфигурацию проекта" исправляет его.

Щелкните правой кнопкой мыши проект, выберите Maven > Обновить конфигурацию проекта и дайте ему несколько секунд.

Ответ 8

В моем случае я смог решить эту проблему, отключив атрибут папки Только для чтения Свойства папки проекта.

Затем я повторно настроил Построить путь проекта, затем Очистить.

Он решил ошибку.

Ответ 9

Для тех, кто ищет, почему Eclipse может создавать проект, но Maven не может, проверьте, есть ли у вас JUnit как библиотека или как зависимость плагина. Если он будет добавлен как библиотека, Maven не сможет его поднять и бросить много ограничений доступа (тип xyz не API).