1

Java中有没有办法从控制台调用方法?

我知道可以使用 args 数组,例如args[0],获取输入文件的名称,但我不知道 Java 是否允许从控制台调用方法。

4

2 回答 2

3

好吧,您可以使用反射并将您想要调用的方法的名称作为程序的参数之一传递,然后使用它来反射调用它。

根据您真正想做的事情,您可能会考虑使用BeanShell之类的东西,它可以让您以更简单的方式从 Beanshell 控制台与 Java 进行交互,前提是您的问题是“如何从控制台使用 Java?” 而不是如何以编程方式执行此操作。

例如,从 Beanshell 控制台我可以执行以下操作:

print(eval("Math.max(1,2)"));

它会在我的控制台中产生 2。

您还可以将 beanshell.jar 添加到应用程序类路径并以编程方式使用 eval 方法。

import bsh.Interpreter;
//...
Interpreter i = new Interpreter();  
Integer r = (Integer) i.eval("Math.max(1,2)");
于 2012-05-02T23:59:39.297 回答
0

您只是想从命令行触发方法的执行,还是在后台运行其他东西?

如果还有其他问题,那么您需要考虑线程,否则您的应用程序将被阻塞等待命令行上的 IO。

根据要调用的方法数量以及您想要的动态程度......您可以使用反射(它将类名和方法名作为参数并执行它们)。

于 2012-05-03T00:05:52.663 回答