Ограничение доступа к классу из-за ограничений на требуемую библиотеку
Я получаю это сообщение об ошибке в 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).