问题描述
- 用Java写的JVM,在没有JVM的机器上怎么运行。
-
我们知道,通常来说,一种语言的编译器和连接器的编写是无关乎这种语言本身的,因为最终只要这种编译器或连接器是以机器能读懂得二进制的形式存在的就行,机器便能运行它。
同样,我们也知道用Java编写的程序不是直接和硬件打交道,甚至不是和操作系统打交道,而是和JVM打交道,只有在装有JVM的机器上才能运行。那么此刻问题来了,本身是用Java写的JVM,他们是如何在没有JVM的机器上运行的呢?这就形成了一个悖论了。本人初涉Java,还望告诉能指点一二,谢谢!!!
解决方案
严格来说,JVM不是Java程序,也不满足Java程序一次编译,多处运行的条件。例如,在Linux下的JVM是不能在windows下运行的。
解决方案二:
JVM不是用java实现的,是基于C实现的,包括JDK很多方法都是C实现的, 去看下java的native和jni 你就明白了
时间: 2024-10-29 21:14:27