0

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

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

我按照此处的说明使用 Java 控制面板进行了更改,但我仍然收到相同的消息。我将我的站点添加到例外 URL,并将 Java 7 和 8 控制面板的安全设置降低为中。

我还尝试在 Java 1.8 和 1.7 中进行编译,并尝试使用 Oracle 的 Java 7 和 8 web start 运行应用程序。我分别在 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>

甚至建议或参考也会有所帮助。在调整他们的安全设置并匹配他们的权限后,我找不到任何仍然有这个问题的人。有任何想法吗?

4

1 回答 1

0

我希望这会有所帮助,但在 中manifest.mf,我注意到Permissions键值对最后有一个额外的空间。清单中的键值对.jar必须是精确字符串匹配。

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

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

于 2014-07-14T07:49:44.293 回答