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

Java AWS Lambda报ClassNotFoundException:找不到org.example.HelloWorld.handler

错误原因及解决方法

核心原因1:Handler配置格式错误

Lambda的Java Handler配置要求格式为**全限定类名::方法名**,如果你在配置时写成了org.example.HelloWorld.handler(用点号连接类与方法),Lambda会把整个字符串当作类名去查找,自然找不到对应的类。

核心原因2:Jar包未正确包含编译后的类文件

若Maven打包过程中,没有把org/example/HelloWorld.class放到Jar包的根目录下(比如类文件被嵌套在子目录、打包了源码而非字节码),Lambda也无法定位到目标类。


解决方法

1. 修正Handler配置

在AWS Lambda控制台的函数配置页面,将Handler字段修改为:

org.example.HelloWorld::handler

注意使用双冒号连接类名与方法名,而非点号。

2. 检查并修正Maven打包配置

确保pom.xml包含正确的打包插件,保证编译后的类被正确打包到Jar根目录。标准配置示例如下:

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.8.1</version>
            <configuration>
                <source>11</source> <!-- 对应Lambda支持的Java版本,如8/11/17 -->
                <target>11</target>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-shade-plugin</artifactId>
            <version>3.2.4</version>
            <executions>
                <execution>
                    <phase>package</phase>
                    <goals>
                        <goal>shade</goal>
                    </goals>
                    <configuration>
                        <createDependencyReducedPom>false</createDependencyReducedPom>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

执行mvn clean package后,打开生成的Jar包,确认org/example/HelloWorld.class存在于Jar根目录下。

3. 验证Jar包内容

用以下命令查看Jar包内部结构:

jar tf hello-lambda.jar

输出中必须包含org/example/HelloWorld.class这一行,否则说明打包过程存在问题,需检查Maven编译、打包步骤是否正常执行。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 03:35:44