Java应用程序可以从命令行接受任意数量的参数。这允许用户在启动应用程序时指定配置信息。
用户在调用应用程序时输入命令行参数,并在要运行的类的名称后指定它们。 例如,假设一个名为Sort
的Java应用程序对文件中的行进行排序。 要对名为friends.txt
的文件中的数据进行排序,用户应输入:
java Sort friends.txt
启动应用程序时,运行时系统会通过Strings
数组将命令行参数传递给应用程序的main方法。 在上一个示例中,命令行参数将一个包含“friends.txt
”的String
数组传递给Sort
应用程序:。
回显命令行参数
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
解析数字命令行参数
如果应用程序需要支持数字命令行参数,则必须将表示数字(例如“ 34”)的String
参数转换为数字值。 这是一个将命令行参数转换为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
转换为其类型的对象。