Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/348.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Java代码运行Java代码?_Java - Fatal编程技术网

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

如何使用Java代码运行Java代码?,java,Java,基本上,我想做两件事: 我想知道是否有任何方法可以使用Java代码运行Java代码 如果可能,我将如何在屏幕上显示输出?(无论是常规输出还是错误或异常) 我知道这是可能的,因为我的一个前辈做过,但我不知道他是怎么做的。也许他使用了Java的一个内置类 注意:用户将在某个文本文件中编写代码,然后我将该文件内容存储在某个变量中,然后可能会运行该代码。您必须了解如何调用编译器(如Suns javac),在出现错误时解析其输出,并动态加载生成的类 Java运行时库中没有可以解析、编译和运行Java源代码

基本上,我想做两件事:

  • 我想知道是否有任何方法可以使用Java代码运行Java代码
  • 如果可能,我将如何在屏幕上显示输出?(无论是常规输出还是错误或异常)
  • 我知道这是可能的,因为我的一个前辈做过,但我不知道他是怎么做的。也许他使用了Java的一个内置类


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

    您必须了解如何调用编译器(如Suns javac),在出现错误时解析其输出,并动态加载生成的类

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

    如果您需要Java的API类(因此,无需编译),请查看。
    我非常喜欢这个

    是的,这是可能的

    步骤1:编译代码
    使用或构造Java编译器编译其代码的。(请注意,这要求系统在运行时提供Java编译器)

    步骤2:调用他们的代码

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

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

    BeanShell已经有好几年没有进行过积极的开发了,所以我不推荐它。也许他已经按照你说的做了,但我想知道是怎么做的?要么他构建了自己的java解析器/编译器,要么他使用了一个现成的编译器后端,如suns javac或eclipse jdt。java编译器经常出现在JDK中,或者作为独立的eclipse编译器出现。