Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.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 没有第三方JVM支持,JikeServm如何工作?_Java_Jvm_Runtime - Fatal编程技术网

Java 没有第三方JVM支持,JikeServm如何工作?

Java 没有第三方JVM支持,JikeServm如何工作?,java,jvm,runtime,Java,Jvm,Runtime,我是JikesRVM的新手。考虑到RVM是用Java语言实现的,我一开始对RVM如何在没有第三方VM支持的情况下自行运行感到困惑 现在我了解到JikesRVM有一个引导映像运行程序,它将在将控制传递给RVM之前将数据、代码和rmap映像加载到内存中。这些图像看起来怎么样?看起来它们是可以直接执行的机器代码。但是什么编译器直接从Java语言到机器代码生成图像呢 非常感谢您的输入。从中,引导程序是用C编写并用GCC编译的那么用Java编写的RVM实现代码呢?它们是否遵从可以直接执行的本机代码(以及构

我是JikesRVM的新手。考虑到RVM是用Java语言实现的,我一开始对RVM如何在没有第三方VM支持的情况下自行运行感到困惑

现在我了解到JikesRVM有一个引导映像运行程序,它将在将控制传递给RVM之前将数据、代码和rmap映像加载到内存中。这些图像看起来怎么样?看起来它们是可以直接执行的机器代码。但是什么编译器直接从Java语言到机器代码生成图像呢


非常感谢您的输入。

从中,引导程序是用C编写并用GCC编译的

那么用Java编写的RVM实现代码呢?它们是否遵从可以直接执行的本机代码(以及构建为映像的代码)?@user261914它们被编译为字节码并由bootstrap@user2611914如果您正在寻找一种将Java编译为本机代码的方法,那么您可能想看看,尽管它最多只支持Java 1.4,据我所知,大多数超前编译器都需要商业许可证。我做了更多的研究,看起来RVM Java代码方法已经被引导映像编写器(其中有一个编译器)编译为本机机器代码(存储在其中一个映像中:RVM.code.image),尽管RVM java对象在JikesRVM对象模型中仍然作为对象进行维护。也就是说,在运行时不会发生字节码本机转换。引导映像运行程序将引导映像加载到内存并配置环境后,RVM就可以运行了。如果我错了,请告诉我。(参考资料:Jalapeño virtual machine,B.Alpern)@user261914我不相信这个来源,因为它可以追溯到2000年——Java的即时编译器不是很好,所以Java的提前编译在当时是一个比较活跃的研究课题,但是现在即时编译器已经足够好了,java到本机编译器通常只用于