【问题标题】:What can I do when args[0] is not working? JDA Builder当 args[0] 不起作用时我该怎么办? JDA 生成器
【发布时间】:2021-04-27 00:41:43
【问题描述】:

我尝试使用 JDA 编写 Discord Bot,但是当我尝试启动程序时,它不起作用。

这是我的代码:


import javax.security.auth.login.LoginException;

import net.dv8tion.jda.api.AccountType;
import net.dv8tion.jda.api.JDA;
import net.dv8tion.jda.api.*;

public class Main {

    public static void main(String[] args) throws LoginException, InterruptedException {
        JDABuilder builder = JDABuilder.createDefault(args[0]);
        builder.setToken("token");
        builder.setStatus(OnlineStatus.ONLINE);
        
        
        
        builder.build();
    }
}

这是控制台输出:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 0 out of bounds for length 0 at de.DiscordBot.Main.main(Main.java:15)

我认为问题出在 (args[0]) 但我不确定。

【问题讨论】:

  • 听起来您的程序没有提供任何命令行参数...您是如何尝试提供的?
  • "我认为问题出在 (args[0]) 但我不确定。"您可以通过查看行号来确定:Main.java:15
  • 除了@JonSkeet 提到的内容之外,当您从命令行运行代码时,会提供命令行参数。它应该看起来像“java Main inputValue”

标签: java discord-jda


【解决方案1】:

通常,在main 方法中,您需要检查输入数组的长度。如果你在没有任何参数的情况下启动你的程序,那么 args 将为空。

一般来说,我会做一些类似的事情

if (args.length>0) {...}

因为它可以保护您免受ArrayIndexOutOfBoundsException 的侵害。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-26
    • 1970-01-01
    相关资源
    最近更新 更多