java Restrição de acesso na classe devido a restrição na biblioteca requerida rt.jar?





7 Answers

http://www.digizol.com/2008/09/eclipse-access-restriction-on-library.html funcionou melhor para mim.

No Windows: Windows -> Preferências -> Java -> Compilador -> Erros / Avisos -> API descontinuada e restrita -> Referência Proibida (regras de acesso): -> mudança para aviso

No Mac OS X / Linux: Eclipse -> Preferências -> Java -> Compilador -> Erros / Avisos -> API descontinuada e restrita -> Referência Proibida (regras de acesso): -> mudança para aviso

java eclipse wsdl stub wsdl2java

Eu estou tentando compilar o código Java 1.4 que foi criado pelo IBM WSDL2Java no Java5 sem recriar os stubs e vi esse erro no Eclipse. Eu estou sob a suposição de que os stubs criados devem apenas compilar contanto que os jars de tempo de execução estejam disponíveis (eles são).

Access restriction: The type QName is not accessible due to restriction on required library C:\Program Files\Java\jdk1.5.0_16\jre\lib\rt.jar

O nome completo da classe é javax.xml.namespace.QName

O que exatamente está acontecendo aqui?

Este é um caso em que estou tentando refatorar um porco de salsicha? Estou melhor recriando os tocos?




Meu palpite é que você está tentando substituir uma classe padrão que vem com o Java 5 com uma em uma biblioteca que você possui.

Isso não é permitido sob os termos do contrato de licença, no entanto, o AFAIK não foi aplicado até o Java 5.

Eu já vi isso com QName antes e eu "consertei" isso removendo a classe do jar que eu tinha.

EDITAR http://www.manpagez.com/man/1/java/ notas para a opção "-Xbootclasspath:"

"Os aplicativos que usam essa opção com o objetivo de substituir uma classe no rt.jar não devem ser implementados, pois isso violaria a licença do código binário do Java 2 Runtime Environment."

O http://www.idt.mdh.se/rc/sumo/aJile/Uppackat/jre/LICENSE

"Restrições de Tecnologia Java. Você não pode modificar a Interface de Plataforma Java (" JPI ", identificada como classes contidas no pacote" java "ou quaisquer subpacotes do pacote" java "), criando classes adicionais dentro do JPI ou causando o adição ou modificação das classes no JPI No caso de você criar uma classe adicional e API (s) associada (s) que (i) estenda a funcionalidade da plataforma Java, e (ii) seja exposta a desenvolvedores de software de terceiros para Com o propósito de desenvolver software adicional que chame essa API adicional, você deve publicar prontamente uma especificação precisa para essa API para uso gratuito por todos os desenvolvedores.Você não pode criar ou autorizar seus licenciados a criar classes adicionais, interfaces ou subpacotes que são de alguma forma identificados como "java", "javax", "sun" ou convenção similar conforme especificado pela Sun em qualquer designação de convenção de nomenclatura. "




  • Vá para as configurações do caminho de compilação nas propriedades do projeto. Windows -> Preferences -> Java Compiler
  • Remover a biblioteca do sistema JRE
  • Adicione outro JRE com um "par perfeito"
  • limpe e construa seu projeto novamente. Isso funcionou para mim.



Além da solução de Nels Beckman , tenho as seguintes dicas:

Em Configure Build Path , tive que reorganizar a ordem das minhas entradas em Order e Export .

Além disso, como desenvolvedor do Eclipse PDE, precisei reorganizar a ordem de minhas dependências em meu MANIFEST.MF , adicionando o pacote problemático como primeiro na lista.

Jogando com esses mostradores, juntamente com a execução de Projeto> Limpar entre, eu consegui resolver esses avisos.




Desculpe por atualizar um POST antigo. Eu tenho o problema relatado e resolvi como dito abaixo.

Supondo que você esteja usando o plugin maven do Eclipse + m2e, se você receber este erro de restrição de acesso, clique com o botão direito no projeto / módulo no qual você tem o erro -> Properties -> Build Path -> Library -> Replace JDK / JRE para aquele que é usado no espaço de trabalho do eclipse.

Eu segui os passos acima e o problema está resolvido.




Vá para o Java Build Path nas propriedades do projeto. Remova a biblioteca do sistema JRE existente e adicione-a novamente, por exemplo, Add Library -> JREL Lib - select jre ---> Finish. Por fim, selecione a guia ordem e exportação, selecione JRELIB e mova-a para cima. É isso aí.




No meu caso, houve uma incompatibilidade entre o JRE do caminho de construção e o JRE instalado no ambiente de execução. Eu mudei para o projeto> Propriedades> compilador Java. Houve uma mensagem de aviso na parte inferior.

Cliquei nos links 'Installed JRE', 'Execution environment', 'Java build path' e alterei a versão do JDK para 1.7 e o aviso desapareceu.




Related