使用java web start实现自动更新桌面应用程序时的AWTPermission异常

Tom*_*man 6 windows desktop-application exception java-web-start

我正在使用提供数据在线备份的桌面应用程序.在我的应用程序中,我正在尝试实现自动软件更新功能.为此我使用java web start.我已经完成了以下使用java web start的过程.

1>创建了包含所有资源的jar.2>创建jnlp文件为:

      <?xml version="1.0" encoding="UTF-8"?>
     <jnlp spec="1.0+" 
               codebase="http://cmswebusa.com/kapil"
              href="PixelVaultJNLP.jnlp">
                <information>
                        <title>PixelVault</title>
                          <vendor>globussoft</vendor>
                           </information>
                        <resources>
                     <!-- Application Resources -->       
                          <jar href="PixelVault.jar" main="true" />

                     </resources>
                   <application-desc
                   name="PixelVault"
                   main-class="com.pixelvault.systemtray.SysTray">
                   </application-desc>
                   <update check="background"/>
                </jnlp>
Run Code Online (Sandbox Code Playgroud)

其中PixelVault.jar是位于http服务器位置的应用程序的jar.

当我尝试使用命令提示符运行选项下载我的应用程序时输入:javaws,我得到AWT权限异常为:

java.security.AccessControlException:访问被拒绝"java.awt.AWTPermission"

它说"java.awt.AWTPermissionException""accessSystemTray".我没有得到如何允许我的应用程序使用系统托盘.

请指导在jnlp文件中进行更改或在我的应用程序中进行任何其他更改.

我感谢您提出的所有有价值的建议,这些建议将帮助我解决这个问题.

And*_*son 2

要消除该错误:

  • JNLP 将需要声明安全元素内的所有权限。
  • 该代码需要进行数字签名。

请注意,JNLP 文件的元素顺序不正确。使用JaNeLA检查文件的有效性以及启动的其他方面。