Ограничение доступа: недоступно из-за ограничений на требуемую библиотеку.\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 и закончить Теперь очистите весь проект и снова постройте

Я так думаю, что вы можете решить свою ошибку