-3

在 Windows 中,您可以使用某些参数启动 .exe 文件来执行某些任务,例如:

shutdown.exe -s

在 Java 中是否有类似的东西,我知道我可以使用 Scanner 功能进行终端输入,但是如果我想在终端不可见/不启动应用程序但仍然能够告诉应用程序一些东西怎么办。

4

2 回答 2

1

看看这个程序:

public class Example {
    public static void main(String[] args) {
        for (int i = 0; i < args.length; i++) {
            System.out.println(args[i]);
        }
    }
}

并这样称呼它:

java Example foo bar baz

输出将是

foo
bar
baz

您还可以在 Eclipse 下设置传递给程序的命令行参数Run> Run Configurations>Arguments

于 2013-02-11T17:07:05.947 回答
0

我建议使用args4j

所有 Java 程序都允许通过 main 方法进行命令行输入:

public void main(String[] args)

但是 args4j 允许您轻松地创建一个类并解析标志something.exe -f flag1

public class MyOptions {

    @Option(name="-r",usage="recursively run something")
    private boolean recursive;

    @Option(name="-o",usage="output to this file")
    private File out;

    @Option(name="-str")        // no usage
    private String str = "(default value)";

    @Option(name="-n",usage="usage can have new lines in it\n and also it can be long")
    private int num;

    // receives other command line parameters than options
    @Argument
    private List arguments = new ArrayList();
}

你只需要从你的 main 方法中调用这个类:

public void main(String[] args) throws IOException {
    MyOptions bean = new MyOptions()
    CmdLineParser parser = new CmdLineParser(bean);
    parser.parseArgument(args);
    // ...
}
于 2013-02-11T17:04:47.697 回答