当前位置: 首页 > 知识库问答 >
问题:

jlink生成的自定义JRE对于最小的JRE来说有很大的尺寸

赖杰
2023-03-14
jlink \
--output myjre \
--add-modules $(jdeps --print-module-deps target/greeting.jar),\
java.xml,jdk.unsupported,java.sql,java.naming,java.desktop,\
java.management,java.security.jgss,java.instrument \

在此尝试之前,我没有使用jlink的任何经验。经过一些尝试和错误,并浏览了github上的类似问题,我找到了一个jlink功能之外的解决方案。

这个变通方法来自binutils包和strip实用程序。

使用--strip-unnedeed标志运行strip实用程序可以缩小libjvm.so大小,并实现主要目标:为一个苗条的Docker映像提供最小的JRE(~113MB)。

strip -p --strip-unneeded myjre/lib/server/libjvm.so

共有1个答案

井誉
2023-03-14

还有其他选项可用于减小JLink中的大小。

--剥离调试--无头文件--无人页

有关帮助,请参见“jlink--help”

 类似资料:
  • 我试图在Java 11中使用jlink为Spring Boot应用程序创建一个最小化的jre。我已经能够用完整的Java 11 jre运行它,但是我得到了一个stacktrace,我很难破译它。我假设根本原因是某种依赖冲突,因为它适用于完整的jre,而不是子集。 我使用的是spring boot 1.5.19,目前包含的模块有:java。base,java。日志记录,java。仪器,java。sq

  • 问题内容: 我们将Java 6 JRE与我们的应用程序安装程序捆绑在一起,以便可以在任何计算机上运行,​​但这会使应用程序变得更重。因此,我们计划减小JRE的大小。如果有人完成了此类任务,您能否提供指导以继续前进? 问题答案: 查看JRE目录中的README文件。“可选文件和目录”部分列出了一些文件(如果将它们与应用程序打包在一起,可以从Oracle / Sun JRE中删除)。 创建安装时,我使

  • 在小程序中的java 7u25流媒体视频更新出现问题后,我想问一下,是否可以使用文件系统中的jre而不是浏览器插件,用户会将其一次性放到特定文件夹中,然后继续与小程序一起使用。现实吗?它会干扰浏览器的java插件吗?

  • 我在cassandra设置中有“commitlog_segment_size_in_mb: 32”,但下面的错误表示最大尺寸为16777216,约为16mb。我在看修复下面错误的正确设置吗? 我指的是基于 http://mail-archives.apache.org/mod_mbox/cassandra-user/201406.mbox/<53A40144.2020808@gmail.com>中

  • 我安装了一个JDK1.8.0_92,它也被添加到Eclipse Neon中的Java/installed JRE中。其中包含java编译器和标准JDK的所有其他组件的“bin”子文件夹。但是,当我试图将这个JRE分配为GlassFish服务器的“服务器运行时环境”时,Eclipse抱怨它需要JDK而不是JRE。旧的JDK1.7.0_55文件夹不会产生这个问题,Eclipse认为它是一个JDK,而不

  • 在部署java web服务(使用spring boot和family构建的rest api)时,我偶然发现了两个选项。 安装JRE/JDK并使用-server参数启动服务 从安装服务器JREhttp://www.oracle.com/technetwork/java/javase/downloads/server-jre8-downloads-2133154.html并使用上面的java命令 有人