在降低安全设置和添加站点异常后,应用程序被安全设置阻止

时间:2014-07-13 23:55:02

标签: java java-web-start jnlp japplet signed-applet

我有一个Java applet,我通过.jnlp文件启动,但它被以下消息阻止:

The Java security settings have prevented this application from running. You may change this behaviour in the Java Control Panel. 

我使用Java控制面板在instructions here之后更改了此内容,但我仍然收到相同的消息。我将我的站点添加到例外URL,并将Java 7和8控制面板的安全设置降低到中等。

我还尝试在Java 1.8和1.7中进行编译,并尝试使用Oracle的Java 7和8 Web启动来运行该应用程序。我分别在Ubuntu和Windows 7,Firefox和Chrome上进行了测试,但两者都没有。

我还签署了.jar,如下:

jarsigner -keystore ~/.keystore -tsa http://timestamp.comodoca.com/rfc3161 MapApp.jar lucas

这是我的manifest.mf

Manifest-Version: 1.0
Permissions: all-permissions 
Application-Name: Map Application Demonstration
Main-Class: visualization.USMaps
Codebase: *
Trusted-Only: true
Trusted-Library: true

这是我的.jnlp文件:

<?xml version="1.0" encoding="UTF-8"?>
<jnlp spec="1.0+" codebase=
"" href="mapApp.jnlp">
    <security>
      <all-permissions/>
    </security>
    <information>
        <title>Map Application Demonstration</title>
        <vendor>Luke Swart</vendor>
    </information>
    <resources>
        <!-- Application Resources -->
        <j2se version="1.7+"
              href="http://java.sun.com/products/autodl/j2se"/>
        <jar href="MapApp.jar"
            main="true" />

    </resources>
    <application-desc
         name="MapApp"
         main-class=
           "visualization.USMaps"
         width="300"
         height="300">
     </application-desc>
     <update check="background"/>
</jnlp> 

我从http://lukeswart.net/mapApp.html打电话如下:

    <body>
    <script src=
      "http://www.java.com/js/deployJava.js"></script>
    <script>
        // using JavaScript to get location of JNLP
        // file relative to HTML page
        var dir = location.href.substring(0,
            location.href.lastIndexOf('/')+1);
        var url = "mapApp.jnlp";
        deployJava.createWebStartLaunchButton(url, '1.7.0');
    </script>
  </body>

即使是建议或参考也会有所帮助。在调整安全设置并匹配其权限后,我找不到仍有此问题的人。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我希望这会有所帮助,但在manifest.mf中,我注意到Permissions键值对在末尾有一个额外的空格。 .jar清单中的键值对必须是EXACT String匹配。

Manifest-Version: 1.0
Permissions: all-permissions 
Application-Name: Map Application Demonstration
Main-Class: visualization.USMaps
Codebase: *
Trusted-Only: true
Trusted-Library: true

我希望他们在构建jar之前修剪了键值对...