我正在使用ANT脚本构建Java 7应用程序(应用程序内置于jar文件中)并使用JNLP文件部署到客户端 .
目前我需要将一些“属性”放入JNLP文件中,但该属性在我的应用程序中是不可见的,除非我将该特定属性标记为“安全”(意味着将“jnlp . ”作为属性名称前缀) . 这有效,但我不认为这是向应用程序提供自定义属性的好方法 .
为了使用jnlp属性,我应该这样,我必须"sign" jnlp文件,如here所述 .
当我使用Java 7时,制作JNLP模板的能力很好,但我不确定是否将JNLP模板放在我的项目结构中,也不确定如何将它包含在我的Ant构建中 .
我对Ant不是很“流利” .
3 回答
您需要将JNLP添加到链接中指定的目录和名称下的JAR文件中,这通过
<jar>
任务完成,然后使用<signjar>
任务对其进行签名 .您需要在Ant中使用signJar任务 . 以下是文档的链接以及如何使用它的示例 .
https://ant.apache.org/manual/Tasks/signjar.html
正如文章描述的那样,如果要对JNLP文件进行签名,则必须将其放入JNLP-INF子目录中 . 所以你的项目结构应如下所示:
JAR文件以通常的方式创建和签名 - 不需要额外的任务 . 请注意,应用程序启动时,所使用的JNLP文件必须与签名JAR中的JNLP文件相同才能运行应用程序 .
这意味着将创建清单,并且/ bin目录中的每个文件和文件夹都将包含在app.jar文件中 . 所以例如eclipse自动将每个源目录放入/ bin文件中 . 因此,根据您使用/不使用的IDE类型,您必须手动复制JNLP-INF . 由于签名总是在整个jar文件上完成,所以你不需要做任何事情......