Java命令行参数

时间:2009-04-04 00:13:45

标签: java command-line arguments

我试图检测'a'是否作为第一个字符串参数输入。

9 个答案:

答案 0 :(得分:38)

如果您打算将其延伸到单个arg,请使用apache commons cli

“Apache Commons CLI库提供了一个API,用于解析传递给程序的命令行选项。它还能够打印详细说明命令行工具可用选项的帮助消息。”

Commons CLI支持不同类型的选项:

  • POSIX like options(即tar -zxvf foo.tar.gz)
  • GNU就像长选项(即du -human-readable --max-depth = 1)
  • 类似Java的属性(即java -Djava.awt.headless = true -Djava.net.useSystemProxies = true Foo)
  • 附加值的短期权(即gcc -O2 foo.c)
  • 单个连字符的长选项(即ant -projecthelp)

答案 1 :(得分:36)

public class YourClass {
    public static void main(String[] args) {
        if (args.length > 0 && args[0].equals("a")){
            //...
        }
    }
}

答案 2 :(得分:17)

每个Java程序都以

开头
public static void main(String[] args) {

String作为参数的main()类型数组包含程序的命令行参数。如果用户以

运行您的程序
$ java myProgram a

然后args[0]将保持字符串“a”。

答案 3 :(得分:5)

命令行参数在第一个String[]参数中传递给main(),例如

public static void main( String[] args ) {
}

在上面的示例中,args包含所有命令行参数。

对提出的问题作出简短而甜蜜的回答是:

public static void main( String[] args ) {
    if( args.length > 0 && args[0].equals( "a" ) ) {
        // first argument is "a"
    } else {
        // oh noes!?
    }
}

答案 4 :(得分:2)

可以通过String[] args方法的main参数访问命令行参数。

对于第一个参数,您可以查看args[0]

整个代码看起来像

public static void main(String[] args) {
    if ("a".equals(args[0])) {
         // do something
    }
}

答案 5 :(得分:1)

您的main方法有一个String[]参数。它包含已传递给您的应用程序的参数(通常称为args,但这不是必需的)。

答案 6 :(得分:1)

尝试传递值a并使用equals方法进行比较,如下所示:

public static void main(String str[]) {

    boolean b = str[0].equals("a");

    System.out.println(b);

}

点击此链接了解有关Command line argument in Java

的更多信息

答案 7 :(得分:0)

正如其他人所说的...... .equals方法就是你所需要的。

你有机会使用类似的东西:

if(argv[0] == "a")

然后它不起作用,因为==比较两个对象的位置(物理相等)而不是内容(逻辑相等)。

由于命令行中的“a”和程序源中的“a”分配在两个不同的位置,因此无法使用==。你必须使用equals方法,它将检查两个字符串是否具有相同的字符。

另一个注意事项......“a”==“a”在很多情况下会起作用,因为字符串在Java中是特殊的,但在99.99999999999999%的时候你想要使用.equals。

答案 8 :(得分:0)

命令行参数作为字符串存储在String数组String[] args that is passed to main()`中。

java [program name] [arg1,arg2 ,..]

命令行参数是在运行程序时从命令提示符接受的输入。传递的参数可以是任何东西。哪个存储在args[]数组中。

//Display all command line information
         class ArgDemo{
            public static void main(String args[]){
            System.out.println("there are "+args.length+"command-line arguments.");
            for(int i=0;i<args.length;i++)
            System.out.println("args["+i+"]:"+args[i]);
    }
    }

示例:

java Argdemo one two

输出将是:

there are 2 command line arguments:
they are:
arg[0]:one
arg[1]:two