Ограничение доступа к jdk1.7/jre/lib/rt.jar - программирование
Подтвердить что ты не робот

Ограничение доступа к jdk1.7/jre/lib/rt.jar

Привет, я столкнулся с очень странным, создавая свой парсер JAXB. Когда я пытался сгенерировать классы JAXB из eclipse, то в одном классе он показывает очень странную ошибку, которая

Access restriction: The type QName is not accessible due to restriction on required library /usr/lib/jvm/jdk1.7.0_02/jre/lib/rt.jar

это мой класс

package generated;

import javax.xml.bind.JAXBElement;
import javax.xml.bind.annotation.XmlElementDecl;
import javax.xml.bind.annotation.XmlRegistry;
//import javax.xml.namespace.QName;
import javax.xml.namespace.*;


@XmlRegistry
public class ObjectFactory {

И ЗДЕСЬ НА ЭТОЙ ЛИНИИ Я ПРИНИМАЮ СООБЩЕНИЕ ОШИБКИ

private final static QName _ExpenseReport_QNAME = новое QName ( "," costReport");

    /**
     * Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: generated
     * 
     */
    public ObjectFactory() {
    }

    /**
     * Create an instance of {@link ExpenseT }
     * 
     */
    public ExpenseT createExpenseT() {
        return new ExpenseT();
    }

    /**
     * Create an instance of {@link UserT }
     * 
     */
    public UserT createUserT() {
        return new UserT();
    }

    /**
     * Create an instance of {@link ItemT }
     * 
     */
    public ItemT createItemT() {
        return new ItemT();
    }

    /**
     * Create an instance of {@link ItemListT }
     * 
     */
    public ItemListT createItemListT() {
        return new ItemListT();
    }

    /**
     * Create an instance of {@link JAXBElement }{@code <}{@link ExpenseT }{@code >}}
     * 
     */
    @XmlElementDecl(namespace = "", name = "expenseReport")
    public JAXBElement<ExpenseT> createExpenseReport(ExpenseT value) {
        return new JAXBElement<ExpenseT>(_ExpenseReport_QNAME, ExpenseT.class, null, value);
    }

}
4b9b3361

Ответ 1

Эта проблема возникает, когда путь класса ссылается на JRE вместо JDK, в котором открыт проект, выполните одно дело:

Путь сборки > Библиотеки

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

Ответ 2

Я получил следующую ошибку: Ограничение доступа:

Тип XmlRegistry недоступен из-за ограничения на требуемую библиотеку C:\Program Files (x86)\Java\jre7\lib\rt.jar

Так я исправил ту же проблему, что и у меня:

1.Go to the Build Path settings in the project properties. (Right click on your application, then in the popout window you will see 'Build Path', slide right and click on 'Configure Build Path...')
2.Remove the JRE System Library
3.Add it back; Select "Add Library" and select the JRE System Library. 

По умолчанию работала для меня.

Ответ 3

Просто удалите и повторно добавьте одну и ту же системную библиотеку JRE.

Примечание. Обязательно нажмите "ОК" и закройте диалог для удаления и повторного добавления.

Ответ 4

Эту ситуацию можно решить следующим образом:

1 - Перейдите в раздел Компилятор Java в диалоговом окне "Свойства проекта", а затем "Ошибки и предупреждения". 2 - Установите флажок Включить специальные настройки проекта. 3 - Внутри Устаревшие и ограниченные API меняют Запретную ссылку (правило acess) на Предупреждение или Игнорировать.

4 - Пожалуйста, не забывайте меня в молитве.

Ответ 5

Перейдите к свойствам проекта и сначала удалите текущие библиотеки jre, затем добавьте библиотеку jre назад.