Java 7中新的JNLP Missing项目警告有什么用?

Bri*_*uch 5 java security jnlp java-web-start

我们的JNLP在从Java 6切换到Java 7后仍然可以正常工作,但它现在抛出了一系列错误,如下所示:

Missing Application-Name: manifest attribute for: http://blah.com/app.jar
Missing Permissions manifest attribute for: http://blah.com/app.jar
Missing Codebase manifest attribute for: http://blah.com/app.jar
Run Code Online (Sandbox Code Playgroud)

它对我们的主罐重复几次,对我们的一个库罐重复几次.但是,对于我们的大部分库罐,它根本不会发生.JaNeLa列出了一些优化机会(通过更改一些默认值),但没有一个看起来是相关的,并且没有找到实际的错误.

到目前为止,搜索网络让我空洞如何将JNLP文件格式变成Java 7发现的值得的东西.:-)

小智 6

有关权限和代码的说明,请参阅:xxx.jar的Missing Codebase清单属性.如果使用ant,则可以使用以下命令将条目添加到清单:

<manifest file="${source}/META-INF/MANIFEST.MF" mode="update">
  <attribute name="Permissions" value="all-permissions"/>
  <attribute name="Codebase" value="${jnlp.codebase}"/>
  <attribute name="Application-Name" value="${app.name}"/>
</manifest>
Run Code Online (Sandbox Code Playgroud)

Java 7更新45破坏了我的Web Start SWT应用程序可能还有一些有趣的信息


Tho*_*orn 6

此问题会影响JNLP和applet.jar文件需要在清单文件中具有权限属性.我认为其他错误不太重要.最新的JRE向最终用户显示一条警告消息,指出从2014年1月开始,最新的JRE将拒绝运行任何缺少Permissions属性的applet或JNLP jar文件.

请参阅清单上的Java SE7技术说明.

Java教程有一个关于修改清单文件的部分,但是按照@mth的建议使用ant执行此操作听起来更简单.