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.


