这些Java教程是针对JDK 8编写的。本页中描述的示例和实践不利用后续版本中引入的改进,并可能使用不再可用的技术。
有关Java SE 9及后续版本中更新的语言功能的概述,请参见Java语言变化。
有关所有JDK版本的新功能、增强功能以及已删除或弃用选项的信息,请参见JDK发行说明。
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
请注意,应用程序会将每个单词(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); } }
parseInt
方法会在args[0]
的格式无效时抛出NumberFormatException
。所有的Number
类(如Integer
、Float
、Double
等)都有parseXXX
方法,用于将代表数字的String
转换为其类型的对象。