如何将Java程序打包成单个exe文件,包括签名的JAR文件,如BouncyCastle?

3
我需要将一个包含bundle jre的Java程序打包成单个exe文件。到目前为止,我一直使用Launch4J。但是Launch4j只接受一个单独的jar文件,所以在调用launch4j之前,我总是将所有外部库打包成一个单独的jar文件。
然而这种方法无法适用于bouncycastle库,因为它们是签名的,将它们提取并重新打包到单个jar文件中会损坏签名。
对生成的“onejar”进行签名也没有帮助,因为bouncycastle库需要一个可信的签名机构。
除了Launch4j之外,我没有找到其他支持外部jar文件的最新exe封装器。
有什么想法吗?
2个回答

3
另一种解决方案是使用Oracle Java (fx)打包工具。对我来说需要花费一些时间才能使其正常工作,但最终我认为它是目前(2016年)解决此问题的最佳方案,因为它非常新,并且会在每个版本中得到更新。它被称为javafxpackager,但它也适用于非fx应用程序。它可以生成Win、Mac和Linux的应用程序。
有关Java(fx)packager的更多详细信息,请参见此处: http://docs.oracle.com/javafx/2/deployment/jfxpub-deployment.htm 可以在此处找到所有现有工具的良好概述以部署Java应用程序: http://www.excelsior-usa.com/articles/java-to-exe.html

现在仅仅是javapackager:http://docs.oracle.com/javase/8/docs/technotes/tools/windows/javapackager.html - Dmitry Leskov

1
我找到了解决方案并想在这里简要说明,也许有人会感兴趣:
您可以指示Launch4j不将jar文件包装到exe中,而是在外部文件夹中访问它们。为此,请设置 true 并通过以下方式提供主类jar的运行时路径 myfolder / myjar.jar 所有其他外部库都可以放在单独的库文件夹中。(通过 mylibraries )

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接