Java语言是怎样跨平台性运行的呢
编译后的Java程序可直接在不同的平台上运行而不用重新编译,这一特性使得Java随着Web应用的普及而迅速普及起来。而Java的跨平台性是如何实现的呢?...
编译后的Java程序可直接在不同的平台上运行而不用重新编译,这一特性使得Java随着Web应用的普及而迅速普及起来。而Java的跨平台性是如何实现的呢?
展开
展开全部
Java之所以能跨平台,是因为java虚拟机能跨平台。
因为Java程序编译之后的代码不是能被硬件系统直接运行的代码,而是一种“中间码”——字节码。然后不同的硬件平台上安装有不同的Java虚拟机(JVM),由JVM来把字节码再“翻译”成所对应的硬件平台能够执行的代码。因此对于Java编程者来说,不需要考虑硬件平台是什么。所以Java可以跨平台。
因为它有虚拟机(JVM),JAVA程序不是直接在电脑上运行的,是在虚拟机上进行的,每个系统平台都是有自己的虚拟机(JVM),所以JAVA语言能跨平台。
java代码不是直接运行在CPU上,而是运行在java虚机(简称JVM)上的。
java是先把java文件编译成二进制字节码的class文件,jvm就解释执行class文件。
就是因为java是运行在jvm上的,所以它的代码就能不经修改,就能在不同平台的jvm上运行(在UNIX用UNIX的jvm,在linux上用linux的jvm,在windows上用windows的jvm)
假如用windows移植到UNIX,只需把java文件是UNIX的jvm上编译成class文件,然后用jvm运行就可以了.
因为Java程序编译之后的代码不是能被硬件系统直接运行的代码,而是一种“中间码”——字节码。然后不同的硬件平台上安装有不同的Java虚拟机(JVM),由JVM来把字节码再“翻译”成所对应的硬件平台能够执行的代码。因此对于Java编程者来说,不需要考虑硬件平台是什么。所以Java可以跨平台。
因为它有虚拟机(JVM),JAVA程序不是直接在电脑上运行的,是在虚拟机上进行的,每个系统平台都是有自己的虚拟机(JVM),所以JAVA语言能跨平台。
java代码不是直接运行在CPU上,而是运行在java虚机(简称JVM)上的。
java是先把java文件编译成二进制字节码的class文件,jvm就解释执行class文件。
就是因为java是运行在jvm上的,所以它的代码就能不经修改,就能在不同平台的jvm上运行(在UNIX用UNIX的jvm,在linux上用linux的jvm,在windows上用windows的jvm)
假如用windows移植到UNIX,只需把java文件是UNIX的jvm上编译成class文件,然后用jvm运行就可以了.
展开全部
1、运行Java程序,必须要安装JDK(Java Development kit),不同的系统需要有不同的JDK。因为JDK内部有JVM(虚拟机)
2、通过虚拟机,可以将我们的原文件化为机器最终可以识别的机器语言。虚拟机它其实是借助电脑本身的设备及其他功能来实现的,一个模拟机器。
3、虚拟机通过JDK将我们的源程序转化为Java字解码程序(扩展名为.class)。
4、转化为了自解码程序后,将自解码程序在对应的操作系统下将Java自解码解释执行。通过操作系统,就实现了机器可识别的语言了。
以上就完成了java语言的跨平台运行。
2、通过虚拟机,可以将我们的原文件化为机器最终可以识别的机器语言。虚拟机它其实是借助电脑本身的设备及其他功能来实现的,一个模拟机器。
3、虚拟机通过JDK将我们的源程序转化为Java字解码程序(扩展名为.class)。
4、转化为了自解码程序后,将自解码程序在对应的操作系统下将Java自解码解释执行。通过操作系统,就实现了机器可识别的语言了。
以上就完成了java语言的跨平台运行。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-09-02
展开全部
我可以明确的告诉你:
只要是使用的 100% 的 java ,在 win 下的 .class 文件,直接拷贝到 linux 下, 绝对可以运行.
我自己就使用 windwosXP 来写 java 程序,调试好后,直接放到我以前的旧电脑的 linux 服务器上, 运行起来绝对没有问题.
这其中包括 使用swing 的GUI程序, 和各种网络程序.和 win 下运行情况一模一样.
就单跨平台来说,没有比 Java 更好的了.
你说的:
问那个数据库实验老师打个比方假如我把eclipse的class拷到我的PPC上能运行吗?竟然回答没问题,我当时就有点傻.
因为 eclipse 使用了 JNI 来实现 swt 的GUI, 所以,即使 PPC 上有 JVM ,如果没有 swt 在 PPC 上的 JNI 实现, eclipse 是不能运行的.
这也就是 eclipse 要分 linux 和 win 版的原因(因为使用了 JNI 调用本地代码).
所以你要使你的一个 .class 文件可以在各种平台上运行, 只要不调用 JNI ,使用 100% 的java ,觉得没有问题.
此外在 linux 下运行 java ,很简单的. 只需要安装 JDK ,设置一下 ClassPath 就可以象 在 win 下一样使用 Java了.
如果你连在 win 下都没有使用 控制台 运行过 Java 程序,只会使用IDE,那你最好不要去玩 linux 了, 你肯定不能成功的执行 Java .不要说网上的资料有问题, 是你的知识太少了.
建议你先看看 <Java 深度历险> 先
只要是使用的 100% 的 java ,在 win 下的 .class 文件,直接拷贝到 linux 下, 绝对可以运行.
我自己就使用 windwosXP 来写 java 程序,调试好后,直接放到我以前的旧电脑的 linux 服务器上, 运行起来绝对没有问题.
这其中包括 使用swing 的GUI程序, 和各种网络程序.和 win 下运行情况一模一样.
就单跨平台来说,没有比 Java 更好的了.
你说的:
问那个数据库实验老师打个比方假如我把eclipse的class拷到我的PPC上能运行吗?竟然回答没问题,我当时就有点傻.
因为 eclipse 使用了 JNI 来实现 swt 的GUI, 所以,即使 PPC 上有 JVM ,如果没有 swt 在 PPC 上的 JNI 实现, eclipse 是不能运行的.
这也就是 eclipse 要分 linux 和 win 版的原因(因为使用了 JNI 调用本地代码).
所以你要使你的一个 .class 文件可以在各种平台上运行, 只要不调用 JNI ,使用 100% 的java ,觉得没有问题.
此外在 linux 下运行 java ,很简单的. 只需要安装 JDK ,设置一下 ClassPath 就可以象 在 win 下一样使用 Java了.
如果你连在 win 下都没有使用 控制台 运行过 Java 程序,只会使用IDE,那你最好不要去玩 linux 了, 你肯定不能成功的执行 Java .不要说网上的资料有问题, 是你的知识太少了.
建议你先看看 <Java 深度历险> 先
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-09-02
展开全部
java有针对与不同平台的虚拟机,这些虚拟机是由SUN公司提供的,程序员不必追究
而程序员主要的就是写JAVA的源程序,这些源程序经过编译生成字节码.class文件
这个字节码文件可以在任何java虚拟机上运行,从而达到跨平台性的.
而程序员主要的就是写JAVA的源程序,这些源程序经过编译生成字节码.class文件
这个字节码文件可以在任何java虚拟机上运行,从而达到跨平台性的.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-09-02
展开全部
java虚拟机
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询