[英]How to sign JNLP file?
我有一个使用ANT脚本构建的Java 7应用程序(该应用程序内置在jar文件中)并使用JNLP文件部署到客户端。
当前,我需要在JNLP文件中放置一些“属性”,但是除非从我的应用程序中将该属性标记为“安全”(即将“ jnlp。”作为属性名称前缀),否则该属性在我的应用程序中不可见。 那行得通,但我认为这不是向应用程序提供自定义属性的好方法。
为了按照我的方式使用jnlp属性,我必须按此处所述“签名” jnlp文件。
当我使用Java 7时,制作JNLP模板的能力很不错,但是我不确定是否将描述的JNLP模板放在我的项目结构中,也不确定如何将其包含在我的Ant构建中。
我对Ant不太熟练。
您需要在Ant中使用signJar任务。 这里是文档的链接以及使用方法的示例。
您需要将JNLP添加到链接中指定的目录和名称下的JAR文件中,这是通过<jar>
任务完成的,然后使用<signjar>
任务对其进行签名。
如本文所述,如果您要签名JNLP文件,则必须将其放入JNLP-INF子目录。 因此,您的项目结构应如下所示:
YourApp.jar:
\- com (folder with your java classes)
\- META-INF (folder which contains the manifest)
\- JNLP-INF (folder which contains your.jnlp file)
\- ... (other folders like res, dtd etc.)
将以通常的方式创建并签名JAR文件-无需执行其他任务。 请注意,启动应用程序时,使用的JNLP文件必须与签名的JAR中的JNLP文件相同,以便应用程序运行。
在“ jar”下,我只有2个子节点:“清单”和文件集dir =“ $ {workspace.path} $ {project.name} / bin”
这意味着将创建清单,并且/ bin目录中的每个文件和文件夹都将包含在app.jar文件中。 因此,例如eclipse会自动将每个源目录放入/ bin文件中。 因此,取决于您使用的是哪种IDE,或者是否使用,必须手动复制JNLP-INF。 由于签名总是在整个jar文件中完成,因此您无需执行任何操作...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.