通过参数向我的程序传递值是什么意思?
What does it mean to pass a value through an argument to my program?
我最近 post 说我的代码不工作并显示消息:
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);
}
}
有人说我必须给它传递参数并且数组是空的。将参数传递给代码是什么意思?我正在使用 Eclipse,有人告诉我必须转到参数选项卡并手动输入一个值,但我需要这样做,这样我也可以在命令提示符中使用此代码。我该怎么做?
那家伙说的是,在命令行中,您可以在 运行 运行 java 程序时输入参数,有点像这样:
<run-java-using-a-command> Bob Joe Bill
我省略了实际的 运行ning,因为如果您只是要使用 eclipse,那不是必需的。但是如果你 运行 它是这样的,那么 args
数组将是这样的:
[Bob, Joe, Bill]
您可以在程序中使用这些参数。在 Eclipse 中,您可以单击 Run | Run | Program Arguments
(在屏幕顶部)来编辑参数。
您的主要方法是从命令行获取任何参数。例如,如果您首先在命令行上导航到 java 文件的位置:
键入这些命令。
1.javac filename.java
这将编译您的 .java 文件
2. java filename
(如果你想 运行 不带参数)。
要将参数传递给您的文件,请使用:
java filename argument
这里参数变成了String数组(main方法中的args)。
所以当这个文件被编译然后 运行 使用类似命令的东西
java filename 99
代码中的 n=Long.parseLong(args[0]);
行会将数字 99 插入到 args[0]。所以 n 将被设置为 99,或者每次你 运行 这个程序时你决定在命令行上 java filename
后键入的任何内容。
这意味着您需要在命令行中添加一个参数,以便您的程序找到并处理它。我在这个例子中使用的参数是数字 3.
我已经在命令行上编译并运行你的程序来展示它是如何工作的。
$ javac FactorialProgram5.java
$ java FactorialProgram5 3
fact=6
$
注意:我在打印指令中添加了一个缺失的换行符
System.out.print("fact=" + fact);
变成
System.out.print("fact=" + fact + "\n");
我最近 post 说我的代码不工作并显示消息:
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);
}
}
有人说我必须给它传递参数并且数组是空的。将参数传递给代码是什么意思?我正在使用 Eclipse,有人告诉我必须转到参数选项卡并手动输入一个值,但我需要这样做,这样我也可以在命令提示符中使用此代码。我该怎么做?
那家伙说的是,在命令行中,您可以在 运行 运行 java 程序时输入参数,有点像这样:
<run-java-using-a-command> Bob Joe Bill
我省略了实际的 运行ning,因为如果您只是要使用 eclipse,那不是必需的。但是如果你 运行 它是这样的,那么 args
数组将是这样的:
[Bob, Joe, Bill]
您可以在程序中使用这些参数。在 Eclipse 中,您可以单击 Run | Run | Program Arguments
(在屏幕顶部)来编辑参数。
您的主要方法是从命令行获取任何参数。例如,如果您首先在命令行上导航到 java 文件的位置:
键入这些命令。
1.javac filename.java
这将编译您的 .java 文件
2. java filename
(如果你想 运行 不带参数)。
要将参数传递给您的文件,请使用:
java filename argument
这里参数变成了String数组(main方法中的args)。
所以当这个文件被编译然后 运行 使用类似命令的东西
java filename 99
代码中的 n=Long.parseLong(args[0]);
行会将数字 99 插入到 args[0]。所以 n 将被设置为 99,或者每次你 运行 这个程序时你决定在命令行上 java filename
后键入的任何内容。
这意味着您需要在命令行中添加一个参数,以便您的程序找到并处理它。我在这个例子中使用的参数是数字 3.
我已经在命令行上编译并运行你的程序来展示它是如何工作的。
$ javac FactorialProgram5.java
$ java FactorialProgram5 3
fact=6
$
注意:我在打印指令中添加了一个缺失的换行符
System.out.print("fact=" + fact);
变成
System.out.print("fact=" + fact + "\n");