假设我有一个类 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 上实例化任意类以及对该类调用任意方法的最简洁方法。
谢谢
最佳答案
使用 Java 9,a REPL包含在 OpenJDK 中。这样,您就可以使用此 REPL 从控制台以编程方式调用代码。在即将到来的更新中,它甚至可能被移植回 Java 8。今天,在 Java 8 中,这可以通过运行 Nashorn REPL 来分散注意力。
或者,您可以编写一个程序来为您完成这项工作,或者使用与其他 JVM 语言(例如 Scala)打包在一起的 REPL。
关于java - 实例化一个类并在不同的 JVM 中运行它的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14987946/