在 Java 中,命令行参数是一种在应用程序执行期间向 Java 程序传递输入的方式。命令行参数可以通过多种方式传递给 Java 应用程序或程序。最常见的是,在控制台中执行 Java 程序时传递命令行参数。在程序执行期间提供的命令行参数会在 main()
方法中被捕获为字符串数组。
传递和访问命令行参数
考虑以下传递命令行参数的语法:
javac tester.java
java tester arg1 arg2 arg3
这里我们编译了一个名为 tester.java
的 Java 文件,并在使用 java
命令运行 tester
类时传入了三个参数,这些参数之间用空格隔开。我们可以向 Java 程序传递任意数量的命令行参数。Java 虚拟机 (JVM) 将这些输入封装到 args[]
数组中。我们可以通过 args.length
来检查传入的参数数量。如果没有传递任何命令行参数,则该数组为空。
class Tester {
public static void main(String[] args){
...
}
}
我们可以通过命令行参数传递字符串、整数和其他任何原始值。每个传递的参数按照输入顺序存储在数组中,从 args[0]
开始。
命令行参数的好处
命令行参数允许在应用程序启动前通过传递参数来配置应用程序的行为。批处理过程就是一个例子,在执行 Java 命令时大量使用命令行参数来传递配置参数。这种机制通过控制台输入动态地参数化 Java 程序,增强了程序的通用性和交互性。对于基于控制台的应用程序,命令行参数方便了用户输入的获取和操作。
单个命令行参数的例子
在这个例子中,我们检查是否恰好传递了一个参数来表示名称。如果没有传递参数或传递了多于一个的参数,我们将打印一条错误消息,说明传递了无效数量的参数。否则,我们会打印带有问候语的名称。
public class Tester {
public static void main(String[] args) {
if(args.length == 1) {
String name = args[0];
System.out.println("Welcome " + name + "!");
}else {
System.out.println("Invalid Command line argument(s) passed.");
}
}
}
输出: 如果我们没有传递任何命令行参数来运行上述程序,这将产生以下结果:
D:\test>javac Tester.java
D:\test>java Tester
Invalid Command line argument(s) passed.
在这里,我们使用 javac
命令编译了 Java 代码,然后在没有任何命令行参数的情况下使用 java
命令运行。让我们再次运行 java
命令并带上所需的参数。
D:\test>java Tester Mahesh
Welcome Mahesh!
多个命令行参数的例子
在这个例子中,我们检查是否恰好传递了两个参数来表示名称和年龄。年龄是一个数字,我们使用 parseInt()
方法解析该参数。如果没有传递参数或传递了多于两个的参数,我们将打印一条错误消息,说明传递了无效数量的参数。否则,我们会打印接收到的名称和年龄。
public class Tester {
public static void main(String[] args) {
if(args.length == 2) {
String name = args[0];
int age = Integer.parseInt(args[1]);
System.out.println("Name: " + name + ", age: " + age);
}else {
System.out.println("Invalid Command line argument(s) passed.");
}
}
}
输出: 如果我们没有传递任何命令行参数来运行上述程序,这将产生以下结果:
D:\test>javac Tester.java
D:\test>java Tester
Invalid Command line argument(s) passed.
在这里,我们使用 javac
命令编译了 Java 代码,然后在没有任何命令行参数的情况下使用 java
命令运行。让我们再次运行 java
命令并带上所需的参数。
D:\test>java Tester Mahesh 40
Name: Mahesh, age: 40
结论
Java 命令行参数对于创建能够动态接受参数的 Java 程序非常有用。用户可以在运行时控制程序的行为,因为参数可以传递给 main()
方法。借助命令行参数,我们可以在运行时管理程序的输出、设置配置参数以及指定输入文件,而无需编译时依赖。
我们可以以多种方式向 Java 程序传递命令行参数。各种集成开发环境 (IDE) 支持在其执行配置中提供这些参数。此外,它们很容易使用。当您运行代码时,可以在程序的配置文件中设置或在命令行上提供。