java为什么可以跨平台执行
展开全部
java是跨平台的,就是生成的.class文件拿到任何系统平台都能运行,其实是建立在虚拟机上的,也就是jvm,你装jkd的时候就带了。
所有的java程序都是在虚拟机也就是jvm是运行的,而且jvm的版本也不同,有windows版本的还有linux版本的,正是因为有了不同的jvm才使得java可以跨平台。简单的说就是因为jvm的不跨平台才导致了java的跨平台,其实是一个过度。不象c语言他没有jvm,通过操作系统内核来编译,windows的操作系统编写的c,拿到linxu下就用不了。
打个比方,就象大家所知道的看电影有一种文件叫rmvb格式的,它拿到哪个平台都能运行,那是因为有realplayer,暴风等播放器的原因。不同的播放器有windows版 和linux版一个道理。
所有的java程序都是在虚拟机也就是jvm是运行的,而且jvm的版本也不同,有windows版本的还有linux版本的,正是因为有了不同的jvm才使得java可以跨平台。简单的说就是因为jvm的不跨平台才导致了java的跨平台,其实是一个过度。不象c语言他没有jvm,通过操作系统内核来编译,windows的操作系统编写的c,拿到linxu下就用不了。
打个比方,就象大家所知道的看电影有一种文件叫rmvb格式的,它拿到哪个平台都能运行,那是因为有realplayer,暴风等播放器的原因。不同的播放器有windows版 和linux版一个道理。
展开全部
因为它有虚拟机(JVM),JAVA程序不是直接在电脑上运行的,是在虚拟机上进行的,每个系统平台都是有自己的虚拟机(JVM),所以JAVA语言能跨平台。
1, java代码不是直接运行在CPU上,而是运行在java虚机(简称JVM)上的。
2,java是先把java文件编译成二进制字节码的class文件,jvm就解释执行class文件。
3,就是因为java是运行在jvm上的,所以它的代码就能不经修改,就能在不同平台的jvm上运行(在UNIX用UNIX的jvm,在linux上用linux的jvm,在windows上用windows的jvm)
假如用windows移植到UNIX,只需把java文件是UNIX的jvm上编译成class文件,然后用jvm运行就可以了
1, java代码不是直接运行在CPU上,而是运行在java虚机(简称JVM)上的。
2,java是先把java文件编译成二进制字节码的class文件,jvm就解释执行class文件。
3,就是因为java是运行在jvm上的,所以它的代码就能不经修改,就能在不同平台的jvm上运行(在UNIX用UNIX的jvm,在linux上用linux的jvm,在windows上用windows的jvm)
假如用windows移植到UNIX,只需把java文件是UNIX的jvm上编译成class文件,然后用jvm运行就可以了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
因为JAVA有个属于自己的运行环境,既:JAVA虚拟机,虚拟机与平台无关,JAVA代码经过编译后,直接运行于虚拟机上,实现了跨平台。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
因为它有虚拟机(JVM),JAVA程序不是直接在电脑上运行的,是在虚拟机上进行的,每个系统平台都是有自己的虚拟机(JVM),所以JAVA语言能跨平台。
1, java代码不是直接运行在CPU上,而是运行在java虚机(简称JVM)上的。
2,java是先把java文件编译成二进制字节码的class文件,jvm就解释执行class文件。
3,就是因为java是运行在jvm上的,所以它的代码就能不经修改,就能在不同平台的jvm上运行(在UNIX用UNIX的jvm,在linux上用linux的jvm,在windows上用windows的jvm)
假如用windows移植到UNIX,只需把java文件是UNIX的jvm上编译成class文件,然后用jvm运行就可以了
1, java代码不是直接运行在CPU上,而是运行在java虚机(简称JVM)上的。
2,java是先把java文件编译成二进制字节码的class文件,jvm就解释执行class文件。
3,就是因为java是运行在jvm上的,所以它的代码就能不经修改,就能在不同平台的jvm上运行(在UNIX用UNIX的jvm,在linux上用linux的jvm,在windows上用windows的jvm)
假如用windows移植到UNIX,只需把java文件是UNIX的jvm上编译成class文件,然后用jvm运行就可以了
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
其实跨平台没什么好牛的,不就是针对不同的操作系统写了一个执行环境。然后写好的程序都可以去执行。从大的层面上来说,所有语言都是跨平台的。只要去写那个环境。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询