【问题标题】:Something in Java that is (similar to) parameters [duplicate]Java中的东西(类似于)参数[重复]
【发布时间】:2013-01-26 20:08:09
【问题描述】:

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

shutdown.exe -s

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

【问题讨论】:

  • Java 中的 main() 方法有一个 String[] 参数,可以为您提供这个。
  • 您能否再详细说明一下,我如何才能真正做到这一点并使用它启动应用程序?

标签: java parameters


【解决方案1】:

我建议使用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);
    // ...
}

【讨论】:

    【解决方案2】:

    看看这个程序:

    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

    下设置传递给程序的命令行参数

    【讨论】:

    • 我选择这个是因为它是最简单的解决方案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-01-07
    • 2020-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-03
    相关资源
    最近更新 更多