我们正在研究如何升级到Java9。JLINK的新功能是生成我们自己的JRE,它与我们的应用程序完全匹配。
我对此有一些天真的问题:
谢谢。
最佳答案
jlink
旨在使Java应用程序可以轻松地移植到其他计算机,而无需期望它安装了JVM。
无需运送jar并使用本地java
命令(它们可能与编译该程序所针对的Java版本不匹配)运行它们,而是将应用程序作为一个自包含的镜像发送,该镜像不仅包含您的代码,而且还包含JVM的代码(但仅是运行应用程序所需的部分)。
压缩后,典型的,不是那么大的jlink应用程序将只有大约50MB(再次包括JVM)。
现在,对您的问题:
如果您不希望指望已预先安装了兼容的JVM,并且可以在其中执行应用程序,而又无法从最小的应用程序中获得太多 yield (这只是其中的一部分), jar 您的应用程序组成)。
我不能肯定地回答这个问题,但是由于jlink是一个相对较新的工具,所以我不希望许多大公司已经在使用它。
这将随着时间而改变,因为正如您提到的,jlink可以提供很大帮助,这使得非常流行的Java微服务更易于部署。
您只需选择使用哪个JDK来编译您的应用程序,然后jlink
(它是JDK的一部分)将为您构建它。要升级您附带的JVM,只需升级用于构建的JDK。
我建议您经常升级它,因为JDK通常每季度都会提供许多安全修复程序。
使用GraalVM或其他JDK发行版的选择似乎与使用jlink正交,除非您的意思是使用GraalVM而非jlink图像构建本机图像?在这种情况下,我会说jlink在此阶段更加可靠:如果使用jlink来构建应用程序,那么一切都会按预期工作,而GraalVM的本机镜像仍处于试验阶段,许多常见的Java应用程序将无法在本机上运行到目前为止,我所做的少量实验就产生了许多图像,而无需付出很大的努力...如果您的应用程序使用本机图像,它确实具有一些好处,例如在图像大小和RAM消耗方面都较小的占用空间,以及更快的启动...但是在JVM暖机后它可能具有较低的峰值性能,因为它无法像完整的JVM一样执行JIT。
关于java - JLINK如何使用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/61224447/