目录:
视频: 051 main函数及命令行参数获取 2024
曾几何时,大多数Java程序员都使用基于文本的开发接口。他们在通俗易懂的窗口中键入命令,通常在黑色背景上显示白色文本。
多么无聊!根据您使用的操作系统类型,清晰的窗口依各种名称而定。在Windows中,这种文本窗口是 命令提示符窗口。 在Macintosh和Linux中,此窗口是 终端。某些版本的Linux和UNIX将这个窗口称为 shell。 <!无论如何,在古代,你可以编写一个程序,当你输入命令启动程序时吸收额外的信息。
启动MakeRandomNumsFile时,输入一些额外的信息。在上图中,程序员键入
java MakeRandomNumsFile来运行 MakeRandomNumsFile 程序。但程序员使用两个额外的信息
MyNumberedFile
。 TXT 和 5 。当 MakeRandomNumsFile 程序运行时,程序会吸收两个额外的信息,并使用它们来执行程序必须执行的任何操作。该程序吸收 MyNumberedFile。 txt 5
,但另一次程序员可能键入
SomeStuff 28
或
BunchONumbers 2000 。每次运行程序时,额外的信息可能会有所不同。 <!接下来的问题是,“Java程序如何知道它每次运行时都应该获取额外的信息? “自从您第一次开始使用Java以来,您已经在每个 main 方法的标题中看到
business。那么,现在是时候了解到这一切的关键。参数
args []
是
String
值的数组。这些
字符串
值被称为
命令行参数。
<! public static void main(String
)[999] [999]
其他程序员编写 public static void main无论如何,
是
String 值的数组。 在Java程序中使用命令行参数
这段代码显示了如何使用命令行参数。
这是你如何生成一个数字文件 import java。 UTIL。随机; import java。 IO。 PrintStream的;
import java。 IO。 IOException异常;
public class MakeRandomNumsFile {
public static void main(
String args []
)throws IOException {
Random generator = new Random();
if(args。长度<2){
系统。出。 println(“用法:MakeRandomNumsFile文件名编号”);
系统。出口(1);
}
PrintStream printOut = new PrintStream(args [0]);
int numLines =整数。 parseInt函数(参数[1]); (int count = 1; count <= numLines; count ++){
printOut。 println(generator。nextInt(10)+ 1); } 打印输出。关();
}
}
如果一个特定的程序需要某些命令行参数,那么就不能像启动大多数其他正常程序那样启动程序。将命令行参数提供给程序的方式取决于您使用的IDE - Eclipse,NetBeans或其他。 Allmycode。 com有使用各种IDE给程序提供参数的指令。
代码开始运行时,
args
数组将获取其值。在上图中显示的运行中,数组组件
args [0]
自动采用值
“MyNumberedFile.txt”
和
args [1]
自动变成
“5”
。所以程序的赋值语句最终具有以下含义:
PrintStream printOut = new PrintStream(“MyNumberedFile.txt”);
int numLines =整数。 parseInt函数( “5”);
程序创建一个名为
MyNumberedFile的文件。 txt
并将
numLines
设置为
5
。所以在代码后面,程序会随机生成五个值,并将这些值放入
MyNumberedFile中。 TXT
。一个程序运行给你这个。
运行代码之后,您可以在哪里找到硬盘上的新文件(
MyNumberedFile。txt
)?答案取决于很多不同的事情。如果您使用IDE将程序划分为项目,则新文件位于项目文件夹中的某处。不管怎样,您可以更改清单11-7以指定完整的路径名称 - 名称,如
“c:\ Users \ MyName \ Documents \ MyNumberedFile.txt”
或
“/ Users / MyName / Documents / MyNumberedFile。txt”
。在Windows中,文件路径名称包含反斜杠字符。而在Java中,当你想在一个双引号的字符串文字中指定一个反斜线时,你可以使用双反斜线。这就是为什么“c:\ Users \ MyName \ Documents \ MyNumberedFile”。 txt“包含反斜杠对。相反,Linux和Macintosh操作系统中的文件路径包含正斜杠。要在Java字符串中指示正斜杠,只能使用一个正斜杠。
注意每个命令行参数是一个
String
值。当您看
args [1]
时,看不到数字5 - 您看到字符串
“5”
,并带有数字字符。不幸的是,您不能使用
“5”
进行任何计数。要从
“5”
中获取
int
值,必须应用
parseInt
方法。
parseInt
方法位于名为
Integer的类中。
因此,要调用
parseInt
,请在名称
parseInt
前面加上单词
整数。
整数
类具有用于处理
int
值的各种方便的方法。在Java中,Integer是一个类的名字,而int是一个原始类型(简单)的名字。这两件事是相关的,但它们并不相同。
Integer
类具有用于处理 int 值的方法和其他工具。
检查命令行参数的数目
如果用户犯了错误,会发生什么情况?如果用户在启动 MakeRandomNumsFile 时忘记在第一行 w 上输入数字
5
然后计算机将
“MyNumberedFile.txt”
设置为
args [0]
,但不会将任何内容分配给
args [1]
。这不好。如果计算机到达语句
int numLines = Integer。 parseInt函数(参数[1]);
该程序崩溃与一个不友好的 ArrayIndexOutOfBoundsException 。 你对此做了什么?您检查 args
数组的长度。你比较
参数。长度
与
2
。如果
args数组
的组件少于两个,则在屏幕上显示一条消息并退出程序。该代码告诉你如何运行它。
尽管检查
参数。长度
,代码仍然不是防撞的。如果用户键入5而不是5,那么程序会以
NumberFormatException
形式冒出来。第二个命令行参数不能是一个单词。争论必须是一个数字(和一个整数)。你可以添加语句来使代码更加防弹。
使用命令行参数时,可以输入一个
字符串
值,并在其中留有空格。只需将该值用双引号括起来。例如,你可以用参数
“My Big Fat File.txt”7
运行上面的代码。