文档

Java™教程
隐藏目录
命令行参数
路径:基本的Java类
课程:平台环境
章节:配置工具

命令行参数

Java应用程序可以从命令行接受任意数量的参数。这使得用户可以在应用程序启动时指定配置信息。

用户在调用应用程序时输入命令行参数,并在要运行的类名之后指定它们。例如,假设一个名为Sort的Java应用程序对文件中的行进行排序。要对名为friends.txt的文件中的数据进行排序,用户将输入:

java Sort friends.txt

当应用程序启动时,运行时系统会通过一个String数组将命令行参数传递给应用程序的main方法。在上面的例子中,命令行参数以包含一个String的数组的形式传递给Sort应用程序:"friends.txt"

回显命令行参数

Echo示例会将每个命令行参数单独显示在一行上:

public class Echo {
    public static void main (String[] args) {
        for (String s: args) {
            System.out.println(s);
        }
    }
}

下面的示例展示了用户如何运行Echo。用户输入以斜体表示。

java Echo Drink Hot Java
Drink
Hot
Java

请注意,应用程序会将每个单词(DrinkHotJava)单独显示在一行上。这是因为空格字符分隔了命令行参数。如果要将DrinkHotJava解释为单个参数,用户可以通过将它们用引号括起来来合并它们。

java Echo "Drink Hot Java"
Drink Hot Java

解析数值型命令行参数

如果应用程序需要支持数值型命令行参数,它必须将代表数字的String参数(如"34")转换为数值。下面是一个将命令行参数转换为int的代码片段:

int firstArg;
if (args.length > 0) {
    try {
        firstArg = Integer.parseInt(args[0]);
    } catch (NumberFormatException e) {
        System.err.println("Argument" + args[0] + " must be an integer.");
        System.exit(1);
    }
}

parseInt方法会在args[0]的格式无效时抛出NumberFormatException。所有的Number类(如IntegerFloatDouble等)都有parseXXX方法,用于将代表数字的String转换为其类型的对象。


上一页: 属性
下一页: 环境变量