Ограничение доступа: недоступно из-за ограничений на требуемую библиотеку.\Jre\lib\rt.jar
Я пытаюсь изменить код устаревшего кода обратно и получить следующие ошибки:
Ограничение доступа: метод create (JAXBRIContext, Object) из заголовка типа недоступен из-за ограничения на требуемую библиотеку. \jre\lib\rt.jar
для этих операторов импорта:
import com.sun.xml.internal.bind.api.JAXBRIContext;
import com.sun.xml.internal.ws.api.message.Header;
import com.sun.xml.internal.ws.api.message.Headers;
import com.sun.xml.internal.ws.developer.WSBindingProvider;
Был поиск того, что это может означать и как его исправить, однако не удалось найти четкий ответ. Некоторые сообщения, похоже, предполагают, что у меня есть некоторые JAR-приложения, которые реализуют классы, которые теперь доступны как часть основного распределения Java, но насколько я вижу, ни один из включенных JAR файлов не содержит разные/более старые версии вышеуказанных классов.
Кто-нибудь может рассказать мне, что это за ошибка, и как я могу это исправить?
Спасибо за вашу помощь уже заранее,
Олли
Ответы
Ответ 1
Я столкнулся с чем-то похожим, я думаю, что причиной предупреждения является Eclipse, пытающийся отговорить вас от использования внутренних пакетов com.sun
, которые установлены как часть вашей рабочей области JRE, но которые не являются частью публичного Java API.
Как говорит Джастин в своем ответе, изменение настроек компилятора может скрыть предупреждение. Более тонкий подход заключается в изменении пути сборки, чтобы явно разрешить доступ к рассматриваемому пакету:
- Откройте вкладку "Библиотеки" в окне свойств проекта Java Build Path.
- Разверните запись в системной библиотеке JRE.
- Выберите "Правила доступа" и нажмите кнопку "Изменить".
- Нажмите кнопку "Добавить" в появившемся диалоговом окне.
- Для нового правила доступа установите для параметра Доступность и шаблон к
"com/sun/xml/internal/**"
.
После добавления этого правила доступа ваш проект должен строиться без этого предупреждения.
Ответ 2
Отличный ответ уже предоставляет на месте здесь.
См. сводку ниже:
- Перейдите в настройки пути сборки в свойствах проекта.
- Удалить библиотеку JRE
- Добавьте его обратно; Выберите "Добавить библиотеку" и выберите Системную библиотеку JRE. По умолчанию работала для меня.
Ответ 3
Не настоящее решение, но везде, где я смотрел, предлагаемое решение состояло в том, чтобы просто сказать Eclipse, что это не ошибки. Вы можете изменить его, перейдя в Свойства → Компилятор Java → Предупреждения об ошибках → Устаревшие и ограниченные API → Запрещенная ссылка (правило acess), Измените ее с Ошибка на Предупреждение или Игнорировать.
Ответ 4
Я решил эту проблему с этими шагами: разверните свой проект, щелкните правой кнопкой мыши "JRE System Library" > "Свойства" > выберите третий вариант "Рабочая область по умолчанию JRE" > "ОК". Надеюсь, что это тоже поможет.
Ответ 5
В Eclipse:
Project -> properties -> java Build Path -> libraries
Удалите существующую библиотеку JRE System, затем Add Library -> JRE System library -> next -> ok
Ошибка будет удалена.
Ответ 6
У меня была такая же проблема, когда мой плагин зависел от другого проекта, который экспортировал некоторые пакеты в файл манифеста. Вместо изменения правил доступа мне удалось решить проблему, добавив необходимые пакеты в раздел "Экспорт-пакет". Это делает пакеты юридически видимыми. Eclipse фактически устанавливает это исправление на маркер ошибки ограничения доступа.
Ответ 7
В среде eclipse, где вы выполняете свои Java-программы, выполните следующие действия:
- Нажмите "Проект" непосредственно над панелью меню в затмении.
- Нажмите на свойства.
- Выберите библиотеки, нажмите на существующую библиотеку и нажмите "Удалить" справа от окна.
- Повторите этот процесс и нажмите "Добавить библиотеку", затем выберите системную библиотеку JRE и нажмите "ОК".
Ответ 8
Я отвечаю на этот вопрос, потому что у меня был другой способ решить эту проблему, чем другие ответы. У меня была эта проблема, когда я реорганизовал имя плагинов, которые я экспортировал. В конце концов я должен был исправить/изменить следующее.
- Зависимости файлов продуктов,
- Зависимости plugin.xml(и убедитесь, что они не импортируются неявно с помощью диалогового окна импортированных пакетов).
- Вкладка плагинов конфигурации запуска. Запустить как..- > Запустить конфигурацию- > вкладки плагинов. Снимите флажки с старых подключаемых модулей и нажмите "Добавить необходимые модули".
Это сработало для меня, но ваш пробег может измениться.
Ответ 9
Я просто изменил фасет проекта на 1.7, и он сработал.
Ответ 10
Перейдите в Buildpath
Удалите существующую JRE и добавьте новую библиотеку JRE, которая содержит Jdk1.6
и закончить
Теперь очистите весь проект и снова постройте
Я так думаю, что вы можете решить свою ошибку