Java中的东西(类似于)参数[重复]
Posted
技术标签:
【中文标题】Java中的东西(类似于)参数[重复]【英文标题】:Something in Java that is (similar to) parameters [duplicate] 【发布时间】:2013-01-26 20:08:09 【问题描述】:在 Windows 中,您可以使用某些参数启动 .exe 文件来执行某些任务,例如:
shutdown.exe -s
在 Java 中是否有类似的东西,我知道我可以使用 Scanner 功能进行终端输入,但是如果我想在终端不可见/不启动应用程序但仍然能够告诉应用程序一些事情怎么办。
【问题讨论】:
Java 中的main()
方法有一个 String[]
参数,可以为您提供这个。
您能否再详细说明一下,我如何才能真正做到这一点并使用它启动应用程序?
【参考方案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
下设置传递给程序的命令行参数【讨论】:
我选择这个是因为它是最简单的解决方案。以上是关于Java中的东西(类似于)参数[重复]的主要内容,如果未能解决你的问题,请参考以下文章
查找所有实现 C# 接口的类 - 类似于 Java [重复]