gpt4 book ai didi

java - JLINK 是如何使用的

转载 作者:行者123 更新时间:2023-12-02 19:50:06 25 4
gpt4 key购买 nike

我们正在研究如何升级到Java 9。JLINK 的一个新功能是生成我们自己的JRE,与我们的应用程序完美匹配。

我有一些关于它的幼稚问题:

  • 在什么情况下我们应该这样做?我了解微服务的好处,但 Web 应用程序呢?
  • 大公司真的在使用它,还是他们使用的大多是普通的 JDK?
  • 如何维护一个 JLINK JRE?我们是否应该在每个新的 Java 版本中重建它(对于 Docker 镜像也是如此...)
  • 如果 graalVM 与我们的应用程序兼容,它不是总是更好/更容易吗?

  • 谢谢。

    最佳答案

    jlink旨在使 Java 应用程序可以轻松地传送到其他机器,而无需安装 JVM。
    而不是运输 jar 并使用本地 java 运行它们命令(可能与编译程序所针对的 Java 版本不匹配),您将您的应用程序作为一个自包含的镜像发布,其中不仅包含您的代码,还包含 JVM 代码(但仅包含运行应用程序所需的部分) .

    一个典型的,不是那么大的 jlink 应用程序,在压缩后,将只有大约 50MB(同样,这包括 JVM)。

    现在,回答您的问题:

    in which case should we do it?



    如果您不希望在执行应用程序的地方预安装兼容的 JVM,并且您不会从交付尽可能小的应用程序(这只是一组您的应用程序包含的 jars)。

    are big companies really using it, or do they use mostly usual JDKs?



    我不能肯定地回答这个问题,但由于 jlink 是一个相对较新的工具,我不希望很多大公司已经在使用它。

    这会随着时间而改变,因为 jlink 可以提供很多帮助,正如您提到的,使非常流行的 Java 微服务更易于部署。

    how to maintain a JLINK JRE? Should we rebuild it at each new Java release (and so for Docker images...)



    您只需选择使用哪个 JDK 来编译您的应用程序,然后 jlink (它是 JDK 的一部分)将为您构建它。要升级您提供的 JVM,您只需升级用于构建的 JDK。

    我建议经常升级它,因为 JDK 附带很多安全修复程序,通常每个季度。

    if graalVM is compatible with our application, isn't it always better/easier?



    选择使用 GraalVM 或其他 JDK 发行版似乎与使用 jlink 是正交的,除非您的意思是使用 GraalVM 而不是 jlink 镜像构建 native 镜像?在这种情况下,我会说 jlink 在这个阶段更可靠:如果你使用 jlink 来构建你的应用程序,一切都会像预期的那样工作,而 GraalVM 的 native 镜像仍然是相当实验性的,许多常见的 Java 应用程序将无法在 native 上运行到目前为止我所做的小实验中的图像,没有相当大的努力......如果您的应用程序使用 native 图像,它确实有一些好处,例如在图像大小和 RAM 消耗方面的占用空间更小,以及启动速度要快得多……但是在 JVM 预热后它的峰值性能可能会降低,因为它不能像完整的 JVM 那样执行 JIT。

    关于java - JLINK 是如何使用的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61224447/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com