jnlp尝试使用pdf文件调用showDocument时拒绝权限

时间:2011-12-23 16:14:39

标签: pdf permissions applet jnlp

我需要在我的jnlp应用程序中对这个showDocument提供一些帮助。 我试图在浏览器的另一个选项卡中显示pdf文件,但是java插件被拒绝了。

我的JNLP文件有

  <security>
        <all-permissions/>
  </security>

我的代码是:

    AccessController.doPrivileged(new PrivilegedAction()
    {
        @Override
        public Object run()
        {
            try
            {
                applet.getAppletContext().showDocument(new URL("file:///C:/Contrato.PDF"), "_blank");
            }
            catch(Exception e)
            {
                e.printStackTrace();
                showException("Erro ao exibir arquivo:" + e.getMessage());
            }
            return null;
        }
    });

但我收到了例外

    java.lang.SecurityException: showDocument url permission denied

如果我尝试执行showDocument(google.com,_ blank),但是当我尝试显示任何文件时,它都不起作用。

1 个答案:

答案 0 :(得分:2)

showDocument(URL) AppletContext方法从未用于从本地文件系统启动文件(即使指定为file协议URL)。

至少有两种选择:

  1. JNLP代码段表明这是一个受信任的应用。因此,对于1.6以上的应用,可以调用Desktop.browse(URI)
  2. JNLP API的BasicService提供了showDocument(URL)方法。