繁体   English   中英

如何签署JNLP文件?

[英]How to sign JNLP file?

我有一个使用ANT脚本构建的Java 7应用程序(该应用程序内置在jar文件中)并使用JNLP文件部署到客户端。

当前,我需要在JNLP文件中放置一些“属性”,但是除非从我的应用程序中将该属性标记为“安全”(即将“ jnlp。”作为属性名称前缀),否则该属性在我的应用程序中不可见。 那行得通,但我认为这不是向应用程序提供自定义属性的好方法。

为了按照我的方式使用jnlp属性,我必须按此处所述“签名” jnlp文件。

当我使用Java 7时,制作JNLP模板的能力很不错,但是我不确定是否将描述的JNLP模板放在我的项目结构中,也不确定如何将其包含在我的Ant构建中。

我对Ant不太熟练。

您需要在Ant中使用signJar任务。 这里是文档的链接以及使用方法的示例。

https://ant.apache.org/manual/Tasks/signjar.html

您需要将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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM