java如何实现一次编译到处运行

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java如何实现一次编译到处运行相关的知识,希望对你有一定的参考价值。

JVM是一个java虚拟机,所谓的java虚拟机就是和普通的虚拟机一样,拥有自己的CPU,RAM之类的。我们所使用的操作系统是Windows的操作系统,Windows操作系统支持的可执行文件是EXE文件,也就是说在Windows的操作系统上只有EXE的文件是可以直接被操作系统解释为底层机器语言并进行运行的。而java虚拟机可以支持的是.class的可执行文件,在java的虚拟机中遇到.class的文件就可以直接翻译成java虚拟机所能是别的底层机器语言并进行执行。这就是JVM的机制,正是因为java的这种机制才实现了java的跨平台,在不同的平台上安装能够在相应平台上运行的虚拟机,然后在java虚拟机中运行java的源程序,“一次编译,多次执行”就此实现了。
所以java的跨平台是离不开虚拟机的支持的。虚拟机充当着java源程序和操作系统之间的中间,不同的操作系统只需要寻找相应的中介就可以实现在不同的操作系统上运行。而java的编译只是吧.java文件编译为.class字节码文件而已,然后把字节码交给虚拟机去执行。
虚拟机在执行的时候是读一句字节码文件人后解释一句给操作系统听,这就是为什么java是解释型的语言。
所谓的编译型的语言是指这种语言被编译之后生成的是可以直接供操作系统执行的010101文件,像C,C++都是编译型的,java因为中间有JVM这么个东西所以是解释型的。
参考技术A   一次编译到处运行指的是用 java开发的程序,用javac命令编译后,在不同电脑,不同操作系统上,只要你装了JVM(java虚拟机),就能运行,但在实际情况中,由于jdk版本有好几个,OracleJDK、IBMJDK、OpenJDK ,兼容性上并不能做到完美,因此,只能做到一次编译,广泛运行。
你的问题是如何实现,我觉得考虑这个意义不大,无论使用的是哪种jdk,一般都能做到兼容的本回答被提问者和网友采纳
参考技术B

    JAVA之所以能实现 一次编译,到处运行,是因为JAVA在每个系统平台上都有 JAVA虚拟机(JVM),JAVA编译的中间文件class是由JAVA虚拟机在运行时动态转换为对应平台的机器代码.

    Java是一种可以撰写跨平台应用程序的面向对象的程序设计语言。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。

    Java  由四方面组成:

    Java编程语言,即语法。

    Java文件格式,即各种文件夹、文件的后缀。

    Java虚拟机(JVM),即处理*.class文件的解释器。

    Java应用程序接口(Java API)。

参考技术C

    主要是通过一个叫java虚拟机的程序实现的

    所有java编译后的程序都需要运行在java虚拟机中,虚拟机是操作系统的再抽象,只解析运行字节码

    因为生成的字节码和操作系统无关,而虚拟机执行的又是字节码,所有可以跨平台

参考技术D 编写的java代码会被编译成以.class后缀的字节码文件,java虚拟机会处理这个字节码文件,生成可执行的程序。为什么可以到处运行是因为java在不同操作系统都有对应的java虚拟机,java程序适合这个虚拟机打交道而不会和你的操作系统有太大关系,这就是java的可移植性比C,C++好的原因,就是因为JVM的存在

以上是关于java如何实现一次编译到处运行的主要内容,如果未能解决你的问题,请参考以下文章

JVM,Java怎样实现一次编译到处运行(平台无关性)

jvm原理和代码运行的过程

轻松学JVM

JVM学习--基本原理

Java到处运行的基础之 Class 文件

Java 虚拟机JVM