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

时间:2010-05-24 11:25:50

标签: java

基本上,我想做两件事:

  1. 我想知道是否有任何方法可以使用Java代码运行Java代码。
  2. 如果可能,我如何在屏幕上显示输出? (无论是常规输出还是错误或例外)
  3. 我知道这是可能的,因为我的一位前辈已经做到了,但我不知道他是怎么做到的。也许他使用了Java的内置类之一。

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

4 个答案:

答案 0 :(得分:5)

是的,有可能。

第1步:编译代码
使用ProcessBuilderRuntime构造一个Process,Java编译器在其中编译代码。 (请注意,这需要在运行时在系统上提供Java编译器。)

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

答案 1 :(得分:1)

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

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

答案 2 :(得分:0)

如果您想要一个interpreter(因此,无需编译),请查看BeanShell
我非常喜欢这个!

答案 3 :(得分:0)

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