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

使用JDA开发Discord机器人遇编译错误:找不到createDefault符号

JDA开发Discord机器人编译错误:cannot find symbol class createDefault

我是Java初学者,使用IntelliJ IDEA(Maven)基于JDA开发Discord机器人,编译时出现以下错误:

17:47
java: cannot find symbol
  symbol:   class createDefault
  location: class net.dv8tion.jda.api.JDABuilder

已经尝试过以下解决方案但均无效:

  • 生成jar并处理相关插件
  • 重装IDE
  • 检查包和类的导入情况

以下是我的主代码和pom.xml配置,恳请告知解决办法:

主代码

package me.n1ghtsoul;


import net.dv8tion.jda.api.JDA;
import net.dv8tion.jda.api.JDABuilder;
import net.dv8tion.jda.api.entities.Activity;

public class Bot {
    private static JDA jda;
    private static final String Token_Api = "MTEwNzcxMzEzNDUxMDIzMTYxNQ.G7NnYJ.Zcy_Ij80ey0oLivIKZ4pam6pP6A8MwG3pp4Ndk";

    public static void main(String[] args) {
        botInit();
    }

    private static void botInit(){
        JDABuilder jdaBuilder = new JDABuilder.createDefault(Token_Api);

        jda = jdaBuilder.setActivity(Activity.listening("крутая музыка"))
                .build();
    }
}

pom.xml配置

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>me.n1ghtsoul</groupId>
    <artifactId>NullifierReworked</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <maven.compiler.source>17</maven.compiler.source>
        <maven.compiler.target>17</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>


    <dependencies>
        <dependency>
            <groupId>net.dv8tion</groupId>
            <artifactId>JDA</artifactId>
            <version>5.0.0-beta.9</version>
            <exclusions>
                <exclusion>
                    <groupId>club.minnced</groupId>
                    <artifactId>opus-java</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
    </dependencies>


</project>

解决办法

错误核心原因是JDA 5.x版本中,createDefault是静态工厂方法,不需要通过new JDABuilder()实例化调用,直接用类名调用即可。同时JDA 5.x要求必须处理构建时的异常,需补充异常处理逻辑:

步骤1:修正createDefault调用方式

修改botInit方法中的实例化代码,去掉new关键字:

JDABuilder jdaBuilder = JDABuilder.createDefault(Token_Api);

步骤2:添加异常处理

可选两种方式处理构建异常:

  • 方式一:使用try-catch捕获异常
private static void botInit(){
    try {
        JDABuilder jdaBuilder = JDABuilder.createDefault(Token_Api);
        jda = jdaBuilder.setActivity(Activity.listening("крутая музыка"))
                .build();
    } catch (Exception e) {
        e.printStackTrace();
    }
}
  • 方式二:修改方法签名抛出异常
private static void botInit() throws Exception {
    JDABuilder jdaBuilder = JDABuilder.createDefault(Token_Api);
    jda = jdaBuilder.setActivity(Activity.listening("крутая музыка"))
            .build();
}

步骤3:刷新Maven依赖

在IntelliJ中点击Maven面板的刷新按钮,或执行Maven命令:

mvn clean compile

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 11:35:35