我可以从命令行调用main()以外的java方法吗?

Inv*_*sus 37 java methods

我可以从命令行调用main()以外的java方法吗?

谷歌对这些信息的了解并不多.

谢谢

Fra*_*Man 13

如果你没有main函数,你只需添加一个,如果你这样做,你可以只添加一系列if-then块到顶部.

public static void main(String[] args){
    if (args[0].equals("MY_METHOD"))
        callMyMethod();
    else if(args[0].equals("MY_OTHER_METHOD"))
        callMyOtherMethod();
    //... Repeat ad nauseum...
    else {
        //Do other main stuff, or print error message
    }
}
Run Code Online (Sandbox Code Playgroud)

然后,从命令行:

$ java [MyPackage.]MyClass MY_METHOD
Run Code Online (Sandbox Code Playgroud)

将运行您的方法.

这是非常hackish - 我几乎肯定这不是你想要做的,但是,嘿,它回答了这个问题,对吧?


Nat*_*hes 10

如果为JVM语言安装REPL(Groovy可能只需要最少的工作就可以开始),那么你可以在REPL提示符下调用Java方法(Groovy的名字叫做groovysh).groovysh有一些奇怪的功能(我最不喜欢的一点是声明变量def并没有做你认为应该做的事情),但它仍然非常有用.这是一个有趣的功能,Groovy不尊重隐私,因此您可以调用私有方法并检查私有变量的内容.

Groovy安装包括groovysh.下载zip文件,将其解压缩到某处,将bin目录的位置添加到路径中,然后就可以了.您可以将jar放入lib文件夹,对于您正在运行的代码和该代码使用的库,Groovy会在那里找到它们.