Java.lang.SecurityException: Prohibited package name: java.awt

Seguinte galera, fiz uma aplicação que em determinada parte acessa a impressora pelo método print(File f), da classe Desktop.
No windows funciona normalmente, mas migrando para o linux, gera essa excecao do titulo do topico.
Tentei fazer uma alteração no java.policy, concedendo todos os acessos para a pasta “/home/insigne/Desktop/republica” que é onde o arquivo se encontra, mas não obtive sucesso.

A pergunta é se tem como fazer isso via java.policy e eu estou fazendo errado entao… ou tem outro jeito de fazer?

Grato,

Alexandre

Existe alguma classe no seu projeto que faz parte do pacote “java.awt”, e que não seja uma classe da própria Sun?

Sim, a Desktop, acesso ela por um pacote chamado rt.jar, que eu deixo na pasta corrente do meu programa

Você está chamando a rt.jar explicitamente? Isso deve estar bagunçando tudo, porque você provavelmente está usando uma outra versão do Java no linux (experimente usar java -version para ver que versão é essa), e está usando o rt.jar de outra versão (a que tem a java.awt.Desktop é a Java 6.0).

Qual o jeito certo de usar a classe Desktop? Que tentando colocar simplesmente o import java.awt.Desktop a IDE nao encontra.
Tentei colocar o rt.jar dentro do pacote mas não encontra daí o rt.jar, não sei como que coloca os paths pra que isso funcione.

versao 6 nos 2, tava a 5 no linux mas eu atualizei e nao adiantou nada :frowning:

up!

se eu rodo no linux la sem deixar o rt.jar junto com a pasta… ele gera excecao NotClassDefFound e se deixar ele gera uma SecurityException, ambas em tempo de execucao :frowning:

Tu nao precisa se preocupar com rt.jar.

Se por um acaso nao esta encontrando, a IDE ou na linha de comando, provavelmente a instalacao do
JDK está furada!