3

假设我有一个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 上实例化任意类以及在该类上调用任意方法的最简洁方法。

谢谢

4

1 回答 1

1

在 Java 9 中,REPL包含在 OpenJDK 中。这样,您可以使用此 REPL 从控制台以编程方式调用代码。在即将到来的更新中,它甚至可能被移植回 Java 8。今天,在 Java 8 中,这可以通过运行 Nashorn REPL 进行一些干扰。

或者,您可以编写一个程序来为您完成这项工作,或者使用与 JVM 的其他语言(例如 Scala)打包的 REPL。

于 2015-04-23T22:13:40.910 回答