Java WebStart - 第三方jar - 清单

时间:2014-07-18 15:55:41

标签: java java-web-start manifest.mf

我正在尝试使用Netbeans IDE运行Java WebStart 应用程序。我使用有效的Comodo证书对应用程序进行了签名。当我运行jar时,会弹出一个带有jar和amp的弹出窗口。其证书的详细信息。但是,它会显示另一个错误的弹出窗口。我在Java Web Start manifest issue看到了一个同样问题的帖子,它提供了以下解决方案:

  

我解决了。

     

在jnlpcomponent1.jnlp中,我看到sqljdbc4.jar已经由microsoft签名。

     

当我查看它的manifest.mf它没有属性Permissions:all-permissions。所以我从sqljdbc4.jar中删除所有清单文件并放入一个空文件(也删除MSFTSIG.SF和MSFTSIG.RSA)。现在使用我的签名和权限再次构建应用程序:清单文件中的所有权限,就像魅力一样。

在我的应用程序中,' jnlpcomponent1.jnlp '文件包含已签名的四个 第三方jar 。我的问题是如何解包这些jar(用空白替换清单并删除.SF和.DSA文件)& 重新打包吗?

有没有办法手动执行此操作(例如,在命令提示符)?我可以手动打开这4个罐子的包装,编辑清单,删除.SF& .DSA文件并重新打包?请告诉我。感谢。

更新:我今天成功解决了这个问题。感谢。

1 个答案:

答案 0 :(得分:0)

我知道这并不是你在netbeans中如何做到这一点,但是如果你使用构建系统(例如gradle)来管理webstart的所有内容,那么你可以将这一行添加到你的jar任务中在你的build.gradle中看起来像:

jar{
    from {configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } }

    manifest{
        attributes("Main-Class": mainClassName);
    }
}

将每个依赖项(第三方jar)解压缩(解压缩)它们然后将它们打包(压缩)到你自己旁边的一个jar中,以及它们的所有manifest / etc文件。 netbeans有一个gradle插件(我们在工作中使用非常成功),但显然需要一些工作来转换你的项目,只需要记住一些事情。我希望这会有所帮助。