Java 教程是为 JDK 8 编写的。本页中描述的示例和实践未利用在后续版本中引入的改进。
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
请注意,应用程序将每个单词 Drink
,Hot
,Java
显示在一行上。这是因为空格字符分隔了命令行参数。要将 Drink
,Hot
和 Java
解释为单个参数,用户可以通过将它们括在引号内来连接它们。
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
类 Integer
,Float
,Double
,等 都有一个 parseXXX
方法将表示数字的 String
转换为其类型的对象。