jvm-用Java写的JVM,在没有JVM的机器上怎么运行。

问题描述

用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

jvm-用Java写的JVM,在没有JVM的机器上怎么运行。的相关文章

求教这份用java写的仿qq源码如何在eclipse中运行

问题描述 求教这份用java写的仿qq源码如何在eclipse中运行 http://pan.baidu.com/s/1mhcv3LY 这是源码的下载地址 求大神的详细指教....java小白搞这个好烦恼 http://www.hainanhi.com/forum.php?mod=viewthread&tid=12702&page=1&authorid=1 这是代码说明的地址 解决方案 按照提示,先下载mysql的驱动,并且添加到你的jar包目录.安装和配置好mysql,根据你的配置

如何在你的Linux机器上安装运行Oracle jdbc:thin with java (OAS) DBA

oracle  如何在你的Linux机器上安装运行Oracle 开始行动 在RedHat上安装Oracle可以是相当轻而易举的,但要是完全跟着Oracle公司的文档走就未必那么容易了 .最快的捷径是Tom Bisset的主页:http://jordan.fortwayne.com/oracle. 如果您看了Tom的主页,那么您会注意到他漏了JDBC的安装.如果您准备使用JDBC(对于跨平台的Oracle应用十分方便),只需在安装屏幕要求您选择组件(components)时,加上该选项即可.当然,

eclipse写好的程序如何放到别的机器上运行

问题描述 新手来的..在eclipse写好了程序.也引用了其他的包.如何让它在别的机器上运行? 解决方案 解决方案二:打包啊解决方案三:导出,选择格式为javaee中的war格式,然后选择保存路径将导出的war文件,直接放在tomcat下面的运行空间就可以了,运行空间会自动解压出你的war文件解决方案四:如果不是web程序,直接在有main方法的类页面右击-->run解决方案五:路过打酱油.....解决方案六:打成jar包解决方案七:或war包解决方案八:打成可执行的jar包只要别人的机器上有J

求助 java socket编程c/s在同一台机器上与c/s在不同机器上的区别

问题描述 socket程序,cs在同一个机器上可以正常传递数据,但cs分别在两个机器上就多出了一些数据这是什么原因.列入程序如下:ClientApp.javaimportjava.net.*;importjava.io.*;importjava.lang.*;publicclassClientApp{publicstaticvoidmain(Stringargs[]){try{//创建通讯并且和主机Rock连接SocketcSocket=newSocket("127.0.0.1",80

app-php如何将一个整型数发到Java写的手机APP中

问题描述 php如何将一个整型数发到Java写的手机APP中 PHP将服务器上的信息发给客户端,只需发送一个整型数,最好有代码示例 解决方案 最好是手机通过httpclient去你的服务器(php端)去抓取数据,轮询. 解决方案二: 直接输出就好了或者jion

JVM:查看java内存情况命令

jinfo:可以输出并修改运行时的java 进程的opts. jps:与unix上的ps类似,用来显示本地的java进程,可以查看本地运行着几个java程序,并显示他们的进程号. jstat:一个极强的监视VM内存工具.可以用来监视VM内存内的各种堆和非堆的大小及其内存使用量. jmap:打印出某个java进程(使用pid)内存内的所有'对象'的情况(如:产生那些对象,及其数量). jconsole:一个java GUI监视工具,可以以图表化的形式显示各种数据.并可通过远程连接监视远程的服务器V

java多线程之:深入JVM锁机制2-Lock (转载)

前文(深入JVM锁机制-synchronized)分析了JVM中的synchronized实现,本文继续分析JVM中的另一种锁Lock的实现.与synchronized不同的是,Lock完全用Java写成,在java这个层面是无关JVM实现的. 在 java.util.concurrent.locks包中有很多Lock的实现类,常用的有ReentrantLock. ReadWriteLock(实现类ReentrantReadWriteLock),其实现都依赖 java.util.concurre

JAVA 文件编译执行与虚拟机(JVM)简单介绍

java程序的内存分配 JAVA 文件编译执行与虚拟机(JVM)介绍 Java 虚拟机(JVM)是可运行Java代码的假想计算机.只要根据JVM规格描述将解释器移植到特定的计算机上,就能保证经过编译的任何Java代码能够在该系统上运行.本文首先简要介绍从Java文件的编译到最终执行的过程,随后对JVM规格描述作一说明.    一.Java源文件的编译.下载.解释和执行  Java应用程序的开发周期包括编译.下载.解释和执行几个部分.Java编译程序将Java源程序翻译为JVM可执行代码?字节码.

Java虚拟机详解01----初识JVM

主要内容如下: JVM的概念 JVM发展历史 JVM种类 Java语言规范 JVM规范 一.JVM的概念: JVM: Java Virtual Machine,意为Java虚拟机. 虚拟机: 指通过软件模拟的具有完整硬件系统功能的.运行在一个完全隔离环境中的完整计算机系统 有哪些虚拟机: VMWare.Virtual Box:都是使用软件模拟物理CPU的指令集 JVM:使用软件模拟Java 字节码的指令集   二.JVM发展历史: 1.Java发展史: 1996年:SUN JDK 1.0 Cla