如何使用Java代码运行Java代码?

基本上,我想做两件事:

  1. 我想知道是否有任何方法可以使用Java代码运行Java代码。
  2. 如果可能,我将如何在屏幕上显示输出? (无论是常规输出还是错误或exception)

我知道这是可能的,因为我的一位前辈已经做到了,但我不知道他是怎么做到的。 也许他使用了Java的内置类之一。

注意:用户会将代码写入某个文本文件,然后我将该文件内容存储在某个变量中,然后运行该代码。

对的,这是可能的。

第1步:编译代码
使用ProcessBuilder或Runtime构建一个Java编译器编译其代码的进程 。 (请注意,这需要在运行时在系统上提供Java编译器)。

第2步:调用他们的代码
有两种方法可以调用它们的代码。 您可以再次使用ProcessBuilder或Runtime对象来构造执行其Java代码的过程。 您可以使用Process的getInputStream和getOutputStream函数来读取和写入其他进程。 另一种方法是,您可以使用Class和各种reflectionAPI来加载其代码并直接在Java中执行它。

您将不得不调用一些编译器(如Suns javac),在出现错误时解析其输出并动态加载生成的类。

Java运行时库中没有API类可以解析,编译和运行Java源代码。

您可以使用在JVM之上运行的脚本语言。 Groovy是一个非常好的主意,它与Java相比具有非常相似的语法。