Java 我使用netbeans IDE和I';当我使用Integer.parseInt(args[0])时,我得到ArrayIndexOutOfBoundsException。为什么?如何解决此错误?

Java 我使用netbeans IDE和I';当我使用Integer.parseInt(args[0])时,我得到ArrayIndexOutOfBoundsException。为什么?如何解决此错误?,java,Java,args数组包含给定给程序的参数(命令行参数)。您可以通过以下方式提供: 项目在IDE中运行设置 命令行 如果在没有任何参数的情况下运行程序,则数组将为空。因此,索引0上不会有任何项,并且会引发ArrayIndexOutOfBoundsException 如果要解决此问题,您必须: 通过上述方法之一传递至少一个参数 更改代码,使其不依赖于命令行参数 按以下方式更改代码: public static void main(String[] args) { int n; n = In

args数组包含给定给程序的参数(命令行参数)。您可以通过以下方式提供:

  • 项目在IDE中运行设置
  • 命令行
  • 如果在没有任何参数的情况下运行程序,则数组将为空。因此,索引0上不会有任何项,并且会引发ArrayIndexOutOfBoundsException

    如果要解决此问题,您必须:

  • 通过上述方法之一传递至少一个参数
  • 更改代码,使其不依赖于命令行参数

  • 按以下方式更改代码:

    public static void main(String[] args) {
    
        int n;
        n = Integer.parseInt(args[0]);
        if(n>100)
        {
            System.out.println("The number is greater than 100.");
        }
    }
    
    public static void main(String[] args) {
        if(args != null && args.length > 0) {
        int n;
        n = Integer.parseInt(args[0]);
        if(n>100) {
            System.out.println("The number is greater than 100.");
        }
        }
    }
    
    如果还要处理args[0]不能是整数的事实,可以通过以下方式进行更改:

    public static void main(String[] args) {
    
        int n;
        n = Integer.parseInt(args[0]);
        if(n>100)
        {
            System.out.println("The number is greater than 100.");
        }
    }
    
    public static void main(String[] args) {
        if(args != null && args.length > 0) {
        int n;
        n = Integer.parseInt(args[0]);
        if(n>100) {
            System.out.println("The number is greater than 100.");
        }
        }
    }
    

    运行此程序时是否传递了任何参数?在
    args
    中有多少元素?@VeeraKannadiga我怀疑这是否会有多大帮助。我怀疑这里的问题仅仅是Shanti不知道如何让NetBeans将命令行参数传递给程序。不@DavidWallace是的,先生,你是对的。事实上,我对java@DavidWallace是新手