Command-Line Arguments
Java 应用程序可以从命令行接受任意数量的参数。这允许用户在启动应用程序时指定配置信息。
用户在调用应用程序时 Importing 命令行参数,并在要运行的类的名称后指定它们。例如,假设一个名为Sort
的 Java 应用程序对文件中的行进行排序。要对名为friends.txt
的文件中的数据进行排序,用户应 Importing:
java Sort friends.txt
启动应用程序时,运行时系统会通过String
s 数组将命令行参数传递给应用程序的 main 方法。在前面的示例中,命令行参数在包含单个String
:"friends.txt"
的数组中传递给Sort
应用程序。
回显命令行参数
Echo示例单独在一行上显示其每个命令行参数:
public class Echo {
public static void main (String[] args) {
for (String s: args) {
System.out.println(s);
}
}
}
以下示例显示用户如何运行Echo
。用户 Importing 以斜体显示。
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
转换为其类型的对象。