Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何签署JNLP文件?_Java_Ant_Jnlp - Fatal编程技术网

Java 如何签署JNLP文件?

Java 如何签署JNLP文件?,java,ant,jnlp,Java,Ant,Jnlp,我有一个Java7应用程序,它是使用ANT脚本构建的(应用程序被构建到jar文件中),并使用JNLP文件部署到客户端 目前,我需要将一些“属性”放入JNLP文件中,但该属性在我的应用程序中不可见,除非我将该特定属性标记为“安全”(意思是将“JNLP.”作为属性名称前缀)。这是可行的,但我认为这不是向应用程序提供自定义属性的好方法 为了以我应该的方式使用jnlp属性,我必须对jnlp文件进行“签名”,如前所述 当我使用Java7时,生成JNLP模板的能力很好,但我不确定是否要将所描述的JNLP模板

我有一个Java7应用程序,它是使用ANT脚本构建的(应用程序被构建到jar文件中),并使用JNLP文件部署到客户端

目前,我需要将一些“属性”放入JNLP文件中,但该属性在我的应用程序中不可见,除非我将该特定属性标记为“安全”(意思是将“JNLP.”作为属性名称前缀)。这是可行的,但我认为这不是向应用程序提供自定义属性的好方法

为了以我应该的方式使用jnlp属性,我必须对jnlp文件进行“签名”,如前所述

当我使用Java7时,生成JNLP模板的能力很好,但我不确定是否要将所描述的JNLP模板放在我的项目结构中,也不确定如何将其包含在我的Ant构建中


我对Ant不是很“流利”。

您需要在Ant中使用signJar任务。这里是一个指向文档的链接以及如何使用它的示例


您需要将JNLP添加到链接中指定的目录和名称下的JAR文件中,这是通过
任务完成的,然后使用
任务对其进行签名。

如本文所述,如果要对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个子节点:“manifest”和fileset dir=“${workspace.path}${project.name}/bin”


这意味着将创建一个清单,/bin目录中的每个文件和文件夹都将包含在app.jar文件中。例如,eclipse会自动将每个源目录放入/bin文件中。因此,根据您正在使用/未使用的IDE类型,您必须手动复制JNLP-INF。因为签名总是在整个jar文件上完成,所以您不需要做任何事情…

我已经用它来对jar进行签名,就像这样(在其他设置中):您能更具体一点吗?在“jar”下,我只有2个子节点:“manifest”和