我有我创建用Ant OSGi包的JAR Eclipse插件。我想用Ant任务他们签名,但与类签名覆盖MANIFEST.MF内容,使得OSGi包不可用。在JDK jarsigner工具具有相同的行为。 Eclipse的PDE似乎有这个功能,但据我所知,你只能用它在Eclipse中。我希望能够从命令行运行我的Ant构建。有谁知道一个简单的方法来添加的,而不是覆盖它的类签名MANIFEST.MF?

有帮助吗?

解决方案

我不认为清单是默认覆盖。遵守以下控制台脚本:

$ touch MyMainClass.class

$ echo 'Main-Class: MyMainClass' > MyManifest

$ jar cvmf MyManifest myjar.jar MyMainClass.class
added manifest
adding: MyMainClass.class(in = 0) (out= 0)(stored 0%)

$ unzip -c myjar.jar META-INF/MANIFEST.MF
Archive:  myjar.jar
  inflating: META-INF/MANIFEST.MF
Manifest-Version: 1.0
Created-By: 1.6.0_17 (Apple Inc.)
Main-Class: MyMainClass

$ jarsigner myjar.jar mykeyid
Enter Passphrase for keystore:

$ unzip -c myjar.jar META-INF/MANIFEST.MF
Archive:  myjar.jar
  inflating: META-INF/MANIFEST.MF
Manifest-Version: 1.0
Created-By: 1.6.0_17 (Apple Inc.)
Main-Class: MyMainClass
Name: MyMainClass.class
SHA1-Digest: 2jmj7l5rSw0yVb/vlWAYkK/YBwk=

其他提示

这似乎是一个JDK的问题。随着1.5.0_16,在覆盖的jarsigner我现有的MANIFEST.MF,但1.6.0_13一切工作正常。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top