Java 如何使用JLINK
我们正在研究如何升级到Java9。JLINK的一个新功能是生成我们自己的JRE,它与我们的应用程序完全匹配 我有一些天真的问题:Java 如何使用JLINK,java,docker,graalvm,jlink,Java,Docker,Graalvm,Jlink,我们正在研究如何升级到Java9。JLINK的一个新功能是生成我们自己的JRE,它与我们的应用程序完全匹配 我有一些天真的问题: 在哪种情况下我们应该这样做?我理解微服务的好处,但是web应用程序呢 大公司真的在使用它吗,还是他们主要使用普通的JDK 如何维护JLINK JRE?我们是否应该在每个新的Java版本中重建它(Docker镜像也是如此…) 如果graalVM与我们的应用程序兼容,它不是总是更好/更容易吗 谢谢。jlink旨在使Java应用程序可以轻松地交付到其他机器上,而不需要安
- 在哪种情况下我们应该这样做?我理解微服务的好处,但是web应用程序呢
- 大公司真的在使用它吗,还是他们主要使用普通的JDK
- 如何维护JLINK JRE?我们是否应该在每个新的Java版本中重建它(Docker镜像也是如此…)
- 如果graalVM与我们的应用程序兼容,它不是总是更好/更容易吗
谢谢。
jlink
旨在使Java应用程序可以轻松地交付到其他机器上,而不需要安装JVM。
您可以将应用程序作为一个自包含的映像提供,其中不仅包括您的代码,还包括JVM的代码(但仅包括运行应用程序所需的部分),而不是使用本地java
命令来运行JAR(这可能与编译程序所依据的java版本不匹配)
一个典型的、不大的jlink应用程序在压缩后只有50MB左右(同样,这包括JVM)
现在,请回答您的问题:
在哪种情况下我们应该这样做
如果您不希望在预安装兼容JVM的情况下遇到麻烦,应用程序将在其中执行,并且您也不会从提供尽可能最小的应用程序(这只是您的应用程序所包含的JAR集)中获得太多好处
大公司真的在使用它吗,还是他们主要使用普通的JDK
我不能肯定地回答这个问题,但由于jlink是一个相对较新的工具,我不希望很多大公司已经在使用它
这将随着时间的推移而改变,因为正如您所提到的,jlink可以帮助您更好地部署非常流行的Java微服务
如何维护JLINK JRE?我们是否应该在每个新的Java版本中重建它(Docker镜像也是如此…)
您只需选择使用哪个JDK来编译您的应用程序,而jlink
(它是JDK的一部分)将为您构建它。要升级您提供的JVM,只需升级用于构建的JDK
我建议经常升级它,因为JDK通常每季度都会有很多安全补丁
如果graalVM与我们的应用程序兼容,它不是总是更好/更容易吗
使用GraalVM或其他JDK发行版的选择似乎与使用jlink是正交的,除非您的意思是使用GraalVM而不是jlink映像构建本机映像??在这种情况下,我会说jlink在这个阶段更加可靠:如果您使用jlink构建应用程序,一切都会像预期的那样工作,而GraalVM的本机映像仍然是相当实验性的,许多常见的Java应用程序将无法在本机映像上工作,这是我迄今为止所做的一点实验,没有相当大的努力。。。如果您的应用程序使用本机映像,它确实有一些好处,比如在映像大小和RAM消耗方面占用的空间更小,启动速度更快。。。但是在JVM变热后,它的峰值性能可能会降低,因为它不能像完整JVM那样执行JIT