You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

咨询AWS Lambda支持的Java部署ZIP/JAR文件格式的官方文档详情

AWS Lambda Java 部署包规范详解

1. Multirelease JARs 限制的文档说明

AWS Lambda官方的Java运行时特性与限制章节明确规定:Lambda不支持multirelease JARs。原因是Lambda采用固定版本的JVM执行代码,多版本JAR的动态版本切换机制无法适配Lambda的运行环境。

2. 不使用Maven Shade Plugin时的结构支持

Lambda完全支持两种无需合并依赖的归档结构,并非仅支持包层级类文件:

  • 分层结构:自身业务类的字节码文件放在归档根目录(保持原包层级,比如com/yourteam/YourHandler.class),所有第三方依赖JAR放在根目录下的lib子目录中。Lambda的Java运行时会自动将lib目录下的所有JAR加入类路径。
  • 扁平化结构:手动解压所有依赖JAR,将解压后的类文件与自身业务类文件按包层级合并后,直接打包进ZIP/JAR的根目录。这种结构和Shade插件的输出效果一致,无需插件也能手动实现。

3. ZIP/JAR的具体内容要求与支持变体

核心要求

  • 必须包含Lambda配置中指定的Handler入口类的字节码文件,该类需能从类路径中被加载(无论是根目录的类文件,还是lib目录下JAR中的类都可)。
  • 归档可以是标准JAR文件,也可以是ZIP压缩包,两者的结构规则完全一致。

支持的变体

  • 分层结构(自身类+lib目录依赖JAR)
  • 扁平化结构(所有类文件直接放在根目录)
  • 包含针对Lambda运行时(Amazon Linux 2/2023)编译的Native库,可放在lib目录或对应系统库路径下。

禁止的内容/结构

  • Multirelease JARs(如前所述)
  • 多余的本地开发文件(比如IDE配置文件、测试用例资源等),避免增大归档体积
  • 修改过的签名JAR(签名后修改归档内容会导致JVM验证失败)

相关文档位置

以上所有规范均收录在AWS Lambda官方的Java开发指南 - 创建部署包章节,以及Java运行时特性与限制章节中,涵盖了部署包结构、依赖管理、运行时限制等全部细节。


内容的提问来源于stack exchange,提问作者Garret Wilson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 23:12:51