Java NetBeans命令行参数传递

3

我正在使用Netbeans传递命令行参数,但是我遇到了ArrayIndexOutOfBoundsException错误。

我的代码如下:

public class CmdLineArgumentPassing

{

      public static void main(String args[])
      {        
         System.out.println("Count : " + args.length);

         System.out.println("i : "+args[0]);
      }
} 

输出结果如下:
Count : 0

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
4个回答

5

右键单击项目,选择属性,转到“运行”页面,添加命令行参数。


如果我将该项目设置为主项目并使用F6运行,则会得到输出。在这个项目中,我只有这个文件,并将这个类设置为主类。然后使用shift+F6运行,我无法获得输出。 - Samurai
1
右键单击项目并选择运行(或F6,但运行方式不需要将项目设置为主要项目...)。如果您正在测试或仅尝试直接运行类,则无法传递参数。 - TofuBeer
在项目属性中,要小心填写程序参数,应该填写在“Arguments”字段中,而不是“VM Options”中。 - OliCoder

2
由于您的输出是Count: 0,则args数组的length0,这意味着没有传递参数。
当您尝试使用arg[0]访问第一个参数时,由于您正在尝试获取不存在的数组成员,因此会出现异常。在这种情况下,您正在尝试获取空数组的第一个成员。请记住,数组索引从0开始,到length-1结束。
由于args为空,这意味着问题在于Netbeans未正确传递参数,而不是您的代码有问题。因此,我猜测Netbeans没有正确配置。

0

我在项目属性/运行/参数中设置了参数,但我直接运行了类(右键单击类文件->运行),因此没有从项目传递参数。解决方案是右键单击项目,然后选择“运行”选项。然后参数就被传递了。


-1
点击“Final proj”并运行,而不是NetBeans 6.9的主项目。你会得到答案。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接