假设我有一个类X
,其中包含一个无参数构造函数和一个方法m
,我需要在一个全新的JVM中运行以进行向导。
我的第一个想法是从命令行(org.apache.commons.exec.CommandLine
)调用它,但现在我仍然坚持X
没有main()
方法的事实(我'假设通过命令行调用Java代码的唯一方法是向java
传递一个包含静态main
方法的类,对吗?)。我可以通过快速绕道在调用类中创建自己的main()
方法,并将其作为其内容
public static void main(String[] args) {
String classToInstantiate = args[some index];
...
}
但我想知道是否有更清洁的方法来实现这一目标。
回顾一下,我需要知道实例化任意类的最简洁方法,以及在与我的主代码不同的JVM上调用该类上的任意方法。
由于
答案 0 :(得分:1)
使用Java 9,OpenJDK中包含a REPL。这样,您可以使用此REPL以编程方式从控制台调用代码。它甚至可能在即将到来的更新中移植回Java 8。今天,在Java 8中,通过运行Nashorn REPL可能会有一些分心。
或者,您可以编写一个为您完成此任务的程序,或者使用与其他语言一起打包的REPL,例如Scala。