java如何使用命令行_如何在Java中使用命令行参数

命令行参数可以是为应用程序指定配置属性的一种方式,Java也不例外。您可以从终端窗口运行Java应用程序,而不是单击操作系统中的应用程序图标 。除了应用程序名称之外,还可以跟随许多参数,然后将这些参数传递给应用程序的起始点(即,在Java的情况下为main方法)。

f4c3f52fc62f99fa74ae17f375b5386a.png

例如,NetBeans具有许多启动参数,当从终端窗口运行时,可以将这些参数传递给应用程序(例如,-jdkhome 指定要使用的JDK的版本,而不是与NetBeans应用程序关联的默认JDK)。

main方法

让我们检查一下main方法 ,看看传递给应用程序的参数出现在哪里:public static void main(String[] args)

{

...do something here

}

命令行参数可以在名为的String 数组中找到args。

例如,让我们考虑一个被调用的应用程序,CommandLineArgs其唯一的操作是打印传递给它的命令行参数:public class CommandLineArgs {

public static void main(String[] args) {

//检查字符串数组是否为空

if (args.length == 0)

{

System.out.println("There were no commandline arguments passed!");

}

//对于字符串数组中的每个字符串

//打印出字符串。

for(String argument: args)

{

System.out.println(argument);

}

}

}

命令行参数的语法

Java运行时引擎(JRE)期望遵循特定语法传递参数,如下所示:java ProgramName value1 value2

在上面,“java”调用JRE,后跟您正在调用的程序的名称。接下来是程序的任何参数。程序可以采用的参数数量没有限制,但顺序很重要。JRE按照它们在命令行中出现的顺序传递参数。例如,请考虑以上代码段:public class CommandLineArgs2 {

public static void main(String[] args) {

if (args.length == 0)

{

System.out.println("There were no commandline arguments passed!");

}

当参数传递给Java程序时,args[0]是数组的第一个元素(上面的value1), args[1]是第二个元素(value2),以此类推。length()代码定义了数组的长度。

通过命令行参数

在NetBeans中,我们可以传递命令行参数,而不必构建应用程序并从终端窗口运行它。要指定命令行参数:

右键单击“项目”窗口中的“项目”文件夹。

选择Properties选项以打开项目属性窗口。

在右边的Categories列表中,选择Run。

在出现的Arguments文本框中,指定要传递给应用程序的命令行参数。例如,如果我们在Arguments文本框中输入Apple Banana Carrot并运行上面列出的CommandLineArgs程序,我们将得到输出:Apple

Banana

Carrot

解析命令行参数

通常,会传递一个命令行参数,其中包含一些关于如何处理传递的值的信息。通知应用程序参数的参数通常在其名称前有一两个连字符。例如,用于指定JDK路径的启动参数的NetBeans示例是-jdkhome。

这意味着您需要解析命令行参数,以确定如何处理这些值。有几个用于解析命令行参数的Java命令行框架。或者,如果需要传递的参数不多,也可以编写一个简单的命令行解析器:public class CommandLineArgs {

//命令行参数:

// -打印输出输出它后面的所有参数

//addnumbers在后面添加所有的数字参数

public static void main(String[] args) {

//检查字符串数组是否为空

if (args.length == 0)

{

System.out.println("There were no commandline arguments passed!");

}

else

{

// 设置一些初始变量

boolean printout = false;

boolean addNumbers = false;

boolean validNumbers = true;

int total = 0;

for(String argument: args)

{

if(argument.equals("-addnumbers"))

{

printout = false;

addNumbers = true;

}

else if (argument.equals("-printout"))

{

printout = true;

addNumbers = false;

}

else if (addNumbers)

{

try {

total = total + Integer.parseInt(argument);

} catch (NumberFormatException e) {

System.out.println("arguments passed with -addnumbers " + "must be integers!");

validNumbers = false;

addNumbers = false;

}

}

else if (printout)

{

System.out.println(argument);

}

}

if (validNumbers)

{

System.out.println("The total of the number arguments is: " + total);

}

}

}

}

上面的代码要么打印参数,要么将它们相加(如果它们是整数)。例如,这个命令行参数将添加数字:java CommandLineArgs -addnumbers 11 22 33 44

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值