Estou tentando executar uma aplicação standalone via JWS, mas quando tento abrir um fileChooser ocorre a seguinte exception:
Exception in thread "AWT-EventQueue-1" java.security.AccessControlException: access denied (java.util.PropertyPermission user.dir read)
at java.security.AccessControlContext.checkPermission(Unknown Source)
at java.security.AccessController.checkPermission(Unknown Source)
at java.lang.SecurityManager.checkPermission(Unknown Source)
at java.lang.SecurityManager.checkPropertyAccess(Unknown Source)
at java.lang.System.getProperty(Unknown Source)
at java.io.Win32FileSystem.getUserPath(Unknown Source)
at java.io.Win32FileSystem.resolve(Unknown Source)
at java.io.File.getAbsolutePath(Unknown Source)
at sun.awt.shell.Win32ShellFolder2.<init>(Unknown Source)
at sun.awt.shell.Win32ShellFolder2.listFiles(Unknown Source)
at sun.awt.shell.ShellFolder.listFiles(Unknown Source)
at sun.awt.shell.Win32ShellFolderManager2.get(Unknown Source)
at sun.awt.shell.ShellFolder.get(Unknown Source)
at javax.swing.plaf.metal.MetalFileChooserUI.updateUseShellFolder(Unknown Source)
at javax.swing.plaf.metal.MetalFileChooserUI.installComponents(Unknown Source)
at javax.swing.plaf.basic.BasicFileChooserUI.installUI(Unknown Source)
at javax.swing.plaf.metal.MetalFileChooserUI.installUI(Unknown Source)
at javax.swing.JComponent.setUI(Unknown Source)
at javax.swing.JFileChooser.updateUI(Unknown Source)
at javax.swing.JFileChooser.setup(Unknown Source)
at javax.swing.JFileChooser.<init>(Unknown Source)
at javax.swing.JFileChooser.<init>(Unknown Source)
at br.com.hello.form.JCustomFileChooser.<init>(JCustomFileChooser.java:28)
Pra esse caso específico, você pode usar o FileOpenService. Agora, se precisar de outras permissões diferentes ou não cobertas por serviços, vai precisar do all-permissions.
M
marcoscorso
Ola
voce conseguiu resolver seu problema …
estou com o mesmo problema …
como voce resolveu …
M
mister_m
Você leu minha resposta logo acima da sua pergunta, Marcos?
M
marcoscorso
sim, mas nao deu certo
M
mister_m
Poste o código que você fez e a exceção para que possamos ajudar.
Exception in thread "AWT-EventQueue-0" java.security.AccessControlException: access denied (java.io.FilePermission arquivo.txt read)
at java.security.AccessControlContext.checkPermission(Unknown Source)
at java.security.AccessController.checkPermission(Unknown Source)
at java.lang.SecurityManager.checkPermission(Unknown Source)
at java.lang.SecurityManager.checkRead(Unknown Source)
at java.io.RandomAccessFile.<init>(Unknown Source)
at _escreverAA.<init>(_escreverAA.java:12)
at Acesso$1.actionPerformed(Acesso.java:23)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
M
mister_m
Obrigatoriamente sua classe deve estar num package. Se nem assim funcionar, mande também o JNLP.
da mesma maneira, inclusive com as mesmas senhas …
mas nao funcionou …
teoricamente, quando eu mandasse executar via web, ele deveria pedir que eu aceitasse ou nao o certificado, certo ??
mas nem isso ele faz quando eu executo, nunca pediu, tenho que configurar alguma coisa pra que esse certificado “ative” ??
pode ser isso ??
M
mister_m
marcoscorso:
teoricamente, quando eu mandasse executar via web, ele deveria pedir que eu aceitasse ou nao o certificado, certo ??
Certo. Provavelmente seu jar não está “de verdade” assinado.
Faça o seguinte: localize o jar no cache no Java WebStart da sua máquina , faça um jar tvf META-INF/ e poste o resultado.
entao minha assinatura esta errada, pois quando executo nao pede o certificado …
o que posso fazer em relacao a assinatura ??
M
mister_m
Bem, você não fez exatamente o que eu te pedi. Você listou o jar assinado da sua máquina, mas eu quero saber se o jar do cache do WebStart está assinado. Localize esse jar e rode o comando nele.
M
marcoscorso
o unico teste.jar que encontrei na minha maquina foi esse onde esta o site, no cache da minha maquina :
(painel de controle -> java -> general -> settings )
aqui esta assim
C:\Documents and Settings\Administrador\Dados de aplicativos\Sun\Java\Deployment\cache
entrei nessa pasta, tem varias outras pastas, mas em nenhuma desla esta o teste .jar …
desculpe, mas como faco isso ???
M
mister_m
Ele renomeia o jar de acordo com alguns padrões. Procure por teste.jar. Outra coisa: ao rodar o comando, faça jar tvf <nome_do_jar>; melhor ter toda a listagem pra conferir.
M
marcoscorso
nao existe nenhum arquivo na minha maquina, conforme figura abaixo …