将cmd行参数传递给特定方法

时间:2014-02-10 20:33:54

标签: java command-line-arguments

在java中,您可以在程序启动期间将cmd行参数传递给main()方法。

我想将cmd行参数传递给我直接从脚本调用的特定方法。我就像main()那样进入他们时没有运气。

示例:

public class Test {
    public static void main(String[] args) { // args is cmd line input
        // do stuff with args
    }
}

你会这样做:~]# java Test cmdlineinput

我需要这样做:

public class Test {
    public void someMethod(String input) {
        // do stuff with input
    }
}

我想这样做:~]# java Test.someMethod cmdlineinput

这可能吗?怎么样?

2 个答案:

答案 0 :(得分:5)

您的程序需要一个主要的方法来运行,您必须直接或间接地将命令行参数从main方法传递到您希望它去的任何地方。我知道没有其他解决方案。

即,

public static void main(String[] args)  {
  Test test = new Test();
  test.someMethod(args);
}

答案 1 :(得分:2)

按照惯例,JVM将查找main并调用它。您无法直接从命令行调用方法。但是,如果对JVM使用REPL,例如Groovy和groovysh,则可以从shell中调用方法。这可能适用于您的用例,也可能不适用。但是,它在技术上允许您单独调用Java方法并调用它们。请阅读此question