Algumas classes da JVM são "proibidas" de serem utilizadas. Umas classes por serem proprietárias, outras por não fazerem parte da especificação oficial. Em alguns casos se faz necessário desabilitar essa restrição para podermos trabalhar com elas, me deparei hoje novamente com essa situação.
A primeira vez que tive esse problema foi quando precisava utilizar um código específico da máquina virtual Java da antiga Sun para descobrir nomes de variáveis de métodos em bytecodes gerados por ela. Hoje novamente me deparei com esse mesmo problema ao tentar criar um Look And Feel (LAF) personalizado para o Java. Para criar esse LAF, preciso de acesso às classes do pacote: com.sun.java.swing.plaf.
Ao utilizar uma classe localizada nesse pacote o eclipse me exibe a seguinte mensagem:
Access restriction: The type NimbusLookAndFeel is not accessible due to restriction on required library /usr/lib/jvm/java-6-openjdk/jre/lib/rt.jar
Para o OpenJDK essas classes possuem acesso restrito. Para liberar o acesso clique com o botão direito no projeto, Build Path, Configure Build Path, Libraries e expanda a lib da JRE.
Selecione Access rules e clique em edit. Clique em Add, selecione Accessible em Resolution e em Rule Pattern coloque o que deseja liberar.
Pressione Ok. Você deve ficar com a seguinte tela:
Pressione Ok novamente e pronto! O erro sumiu. Algumas versões de JDK com o atual da Oracle não tem restrição com classes do Look And Feel.
Estou usando Eclipse Helios, JDK jdk1.6.0_16. Não consigo fazer o swing funcionar. Tento importar JOptionPane e o seguinte erro aparece:
Access restriction: The type JOptionPane is not accessible due to restriction on required library C:\Program Files\Java\jre6\lib\rt.jar
O que devo fazer? Segui os passos acima, mas não funcionou.
Esse erro não é para ocorrer com o JOptionPane e você não pode importar o rt.jar. Abra as propriedades do projeto, vá em Build Path, escolha Libraries, JRE System Library, clique em Edit, busque o Installed JREs e escolha uma JVM compatível.
Muito obrigado pelo post Thiago , isso me ajudou demais !
Bueno! Perfecto - gracias!
Muito obrigado. Consegui acesso á classe BASE64Encoder.