Eclipse 3.5.1 Ошибка компилятора: тип OutputFormat недоступен из-за ограничения на требуемую библиотеку ../rt.jar - PullRequest
6 голосов
/ 05 октября 2009

Эта ошибка странная, и я не могу понять ее. Я установил EclipseRCP 3.5.1, Java SE 1.6 обновилась 16 и перешла на SWT 3.5. Я создал новый проект, настроил зависимости и попытался скомпилировать. При попытке импорта используйте следующее:

import com.sun.org.apache.xml.internal.serialize.OutputFormat;
import com.sun.org.apache.xml.internal.serialize.XMLSerializer;

я получаю ошибку:

Access restriction: The type XMLSerializer is not accessible due to restriction on required library C:\Program Files\Java\jre6\lib\rt.jar.

Я уже погуглил, прочитайте некоторые ответы здесь ... и проблема все еще там. Самое смешное, что если я использую предыдущую версию EclipseRCP (версия: 3.4.2), эта проблема никогда не возникает. Версия 3.4.2 использует ту же версию JRE, и я только что проверил версию SWT. Работает отлично. Я предполагаю, что проблема заключается в каком-то плагине новой IDE. Есть идеи?

P.S. Я нашел эту статью . Но я не люблю или не хочу менять код, если мне не нужно. Что является источником проблемы в первую очередь, и решение будет следовать ..

Ответы [ 3 ]

10 голосов
/ 05 октября 2009

Конфигурация Eclipse по умолчанию слишком ограничена. Вы можете ослабить его, открыв настройки для Java -> Компилятор -> Ошибки / Предупреждения и в разделе «Устаревший и ограниченный API» измените настройку «Запрещенная ссылка (правила доступа)» с ошибки на предупреждение или игнорируйте.

Однако возникает вопрос, действительно ли вы хотите использовать классы в пакете com.sun., поскольку вы не гарантированы, что они будут доступны на виртуальной машине другого поставщика или на более новой виртуальной машине Sun.

1 голос
/ 08 октября 2010

Я публикую эту старую ветку только для справки для тех, кто сталкивается с этим в будущем.

У меня была та же проблема, но она была вызвана тем, что у меня был установлен уровень соответствия компилятора 1,5 при использовании компилятора 1.6. Все вкусности, включенные в 1.6 (например, javax.activation и некоторые из упомянутых выше возможностей xml), будут «ограничены» компилятором 1.6, если уровень соответствия установлен ниже 1.6. Мне просто нужно было добавить соответствующие библиотеки (например, активации.jar ), чтобы избавиться от проблемы в моем случае.

1 голос
/ 16 ноября 2009

Просто замечание для тех, кто сталкивается с подобной проблемой и, похоже, не может заставить работать настройку Eclipse (например, я только сейчас): убедитесь, что для «Forbidden reference» не установлено значение «Error» в проект настройки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...