文档

Java™ 教程-Java Tutorials 中文版
命令行参数
Trail: Essential Classes
Lesson: The Platform Environment
Section: Configuration Utilities

命令行参数

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

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

java Sort friends.txt

启动应用程序时,运行时系统通过 String 的数组将命令行参数传递给应用程序的 main 方法。在前面的示例中,命令行参数传递给 Sort 应用程序一个数组,该数组包含单个 String"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);
    }
}

如果 args[0] 的格式无效,parseInt 将抛出 NumberFormatException。所有 Number 类 — IntegerFloatDouble,等 — 都有一个 parseXXX 方法将表示数字的 String 转换为其类型的对象。


Previous page: Properties
Next page: Environment Variables