【问题标题】:Passing cmd line arguments to specific method [duplicate]将命令行参数传递给特定方法[重复]
【发布时间】:2014-02-10 20:33:54
【问题描述】:

在java中,你可以在程序启动时将命令行参数传递给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

这可能吗?怎么可能?

【问题讨论】:

    标签: java command-line-arguments


    【解决方案1】:

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

    即,

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

    【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 谢谢,1+ 票!
    猜你喜欢
    • 2010-12-11
    • 2018-10-16
    • 2019-08-01
    • 2018-11-11
    • 2011-12-28
    • 1970-01-01
    • 1970-01-01
    • 2015-06-09
    • 2017-10-22
    相关资源
    最近更新 更多