0

我很想知道当您无法从主线访问参数数组时,是否可以确定 Java 应用程序的启动参数。

public static void main(String[] args)
{
    // Invokes my code without providing arguments.
    mycode();
}

public static void mycode()
{
    // Attempting to determine arguments here.
    // TODO GetArgs()
}

我在这种情况下通过做一些插件工作而核心应用程序没有提供启动参数列表。有什么想法吗?

4

3 回答 3

3

除非给了他们插件,否则这种情况是不言而喻的(至少在 Java 中)。

如果您需要专门为您的插件设置一些选项,但无法访问命令行,则至少有两个选项:

  • 选项文件(几种机制)
  • 在命令行上设置系统参数

对于第二个选项,只需使用普通-D选项和命名空间参数名称,如:

java -Dcom.davelnewton.plugins.foo.bar=anOptionValue etc...

System.getProperty(anOptionName)通过或其表亲之一检索它们。

IMO 选项文件是一个更好的 (ahem) 选项,即使您在命令行上指定文件路径,但如果您只有一个或两个选项,也许没有 - 只是取决于。

于 2012-05-20T15:49:50.150 回答
0

将参数传递给函数?

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

public static void mycode(String[] args)
{
    String arg1 = args[0];
}
于 2012-05-20T15:42:54.860 回答
0

你可以这样做:

public static void main(String[] args)  
{  
    System.setProperty("cmdArgs", args);
    mycode();  
}  

public static void mycode()  
{  
    // Attempting to determine arguments here.  
    String[] args = System.getProperty("cmdArgs");

}
于 2012-05-20T15:52:06.783 回答