[英]What does it mean to pass a value through an argument to my program?
我最近发了一个帖子说我的代码不起作用并显示了消息:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
at FactorialProgram5.main(FactorialProgram5.java:11)
使用代码:
import java.util.Scanner;
public class FactorialProgram5 {
public static void main(String args[]) {
long n;
long fact = 1;
n = 1;
for (int i = 1; i <= n; i++) {
n = Long.parseLong(args[0]);
fact = fact * i;
}
System.out.print("fact=" + fact);
}
}
有人说我必须将 arguments 传递给它,并且数组是空的。 将参数传递给代码是什么意思? 我正在使用 eclipse,有人告诉我,我必须 go 到 arguments 选项卡并手动输入一个值,但我也需要在命令提示符下使用此代码。 我怎样才能做到这一点?
您的主要方法是从命令行获取任何 arguments 。 例如,如果您首先在命令行上导航到 java 文件的位置: 键入这些命令。 1. javac filename.java
.java 这将编译你的.java 文件 2. java filename
(如果你想不带参数运行)。 要将 arguments 传递给您的文件,请使用: java filename argument
这里的参数变成了一个字符串数组(主方法中的 args)。
所以当这个文件被编译然后运行类似命令java filename 99
行n=Long.parseLong(args[0]);
在您的代码中将数字 99 插入 args[0]。 因此,每次运行此程序时,n 将设置为 99,或者您决定在命令行上的java filename
之后键入的任何内容。
那家伙说的是,在运行 java 程序时,你可以在命令行中输入 arguments,有点像这样:
<run-java-using-a-command> Bob Joe Bill
我省略了实际运行,因为如果您只是要使用 eclipse,则没有必要这样做。 但是如果你像这样运行它,那么args
数组将是这样的:
[Bob, Joe, Bill]
您可以在程序中使用这些 arguments。 在 Eclipse 中,您可以点击Run | Run | Program Arguments
Run | Run | Program Arguments
Run | Run | Program Arguments
(在屏幕顶部)编辑 arguments。
这意味着您需要在命令行上添加一个参数,以便您的程序找到并处理它。 我在这个例子中使用的参数是数字 3。
我已经在命令行上编译并运行了你的程序来展示它是如何工作的。
$ javac FactorialProgram5.java
$ java FactorialProgram5 3
fact=6
$
注意:我在打印指令中添加了一个缺少的换行符
System.out.print("fact=" + fact);
变成
System.out.print("fact=" + fact + "\n");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.