我正在尝试使用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文件并重新打包?请告诉我。感谢。
更新:我今天成功解决了这个问题。感谢。
答案 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插件(我们在工作中使用非常成功),但显然需要一些工作来转换你的项目,只需要记住一些事情。我希望这会有所帮助。