Java 简明教程
Java - Command Line Arguments
在 Java 中, command line arguments 是在应用执行期间将输入传递到 Java 程序的一种方法。可以有多种方式将 Command line arguments 传递到 Java 应用或程序。最常见的是,在执行 java program 的控制台传入命令行参数。在程序执行期间提供的命令行参数在 main() 方法中捕获为 string 数组。
Passing & Accessing Command Line Arguments
考虑以下传递命令行参数的语法:
javac tester.java
java tester arg1 arg2 arg3
在此我们编译了一个 Java 文件 tester.java,并在使用 Java 运行测试器类时,我们传递了三个由空格分隔的参数。我们可以将任意数量的命令行参数传递到 Java 程序。 Java Virtual Machine (JVM) 将这些输入封装到 args[] 数组中。我们可以使用 args.length 检查传入的参数数量。如果没有命令行参数,则此数组为空。
class Tester {
public static void main(String[] args){
...
}
}
我们可以使用命令行参数来传递字符串、整数和任何其他原始值。传入的每个参数都会按照输入的顺序保存在数组中,从 args[0] 开始。
Benefits of Command Line arguments
-
命令行参数允许通过在应用程序启动之前传递参数来配置应用程序的行为。批处理是大量使用命令行参数的示例之一,用于使用配置参数执行 java 命令。此机制通过控制台输入对 Java 程序进行动态参数化,从而提高了多功能性和交互性。
-
命令行参数促进了基于控制台的应用程序中的用户输入检索和操作。
Example of Single Command Line Argument
在此示例中,我们正在检查是否仅传入了一个参数来表示 name。如果未传入任何参数或传入了一个以上参数,我们打印错误消息,表示传入参数数无效。否则,我们打印带称呼的 name。
public class Tester {
// args array represents the command line arguments passed
public static void main(String[] args) {
// if only one argument is passed
if(args.length == 1) {
String name = args[0];
System.out.println("Welcome " + name + "!");
}else { // otherwise print an error message
System.out.println("Invalid Command line argument(s) passed.");
}
}
}
Example of Multiple Command Line Arguments
在此示例中,我们正在检查是否仅传入两个参数来表示 name 和 age。年龄是个数,我们使用 parseInt() 方法来解析参数。如果未传入任何参数或传入两个以上参数,我们打印错误消息,表示传入参数数无效。否则,我们打印收到的 name 和 age。
public class Tester {
// args array represents the command line arguments passed
public static void main(String[] args) {
// if two arguments are passed
if(args.length == 2) {
String name = args[0];
// parse the age as int
int age = Integer.parseInt(args[1]);
System.out.println("Name: " + name + ", age: " + age);
}else { // otherwise print an error message
System.out.println("Invalid Command line argument(s) passed.");
}
}
}