Ham*_*258 6 java jlink javapackager jdeps java-11
我开发并分发了使用Apache Batik和JavaCV的Java Swing应用程序。我已经通过Java 1.6、7和8更新了它。macOS,Windows和Linux的安装程序是使用Javapackager构建的。Java 8的支持在19年1月终止,我找不到在新的LTS版本Java 11上打包和分发的解决方案。
JavaCV或Batik都不生产模块化jar,但是我设法将它们重新打包到可以在Java 11上编译并生成可运行jar的程度,app可以正常工作,但我不能打包以进行分发。我打算降级到Java 10以使用javapackager并从那里捆绑11个运行时,但是它使用jlink生成自定义运行时,因为JavaCV和Batik不是模块化的,所以jlink失败了。由于Batik和JavaCV中的引用不令人满意,即使我的应用程序在没有它们的情况下也能正常工作,但jdeps不会生成用于修补的module-info.class并使它们模块化。
结果,我将不得不离开Java 8的代码库,即使不再支持它,也要交付它。
我知道有一个调用来创建javapackager的替代品,但是直到Java 8被弃用之后才会出现。而且我仍然需要Batik和JavaCV项目来重构和构建模块化jar,以生成自定义运行时。
任何人都可以提供其他解决方案吗?我错过了什么吗?谢谢。
我有同样的问题。我想使用JDK 11,但根据JDK-8212780, JEP 343已计划用于JDK 13,因此我们需要等待一会儿。在Java 8-10下打包“本机”自包含应用程序不是问题,因为包括了打包程序(至少在Oracle JDK中)。
今天,我发现了这封电子邮件,并想尝试一下:您可以在github.com/skymatic/javafx11-test上看到我的示例项目,我使用jpackagerJDK开发分支的反向移植成功打包了该示例项目。。
我在这里所做的:
JAVA_HOME才能正常工作...)jdeps发现我的非模块化jar的依赖性,并设置了--add-modules参数以生成较小的运行时映像当然,对于模块化项目甚至更容易:在对示例项目的提交中,您可以看到我jpackager对模块路径和主模块而不是类路径和主类使用的参数。
| 归档时间: |
|
| 查看次数: |
1951 次 |
| 最近记录: |