⑴ 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 深度历险 先
⑵ 为什么Java可以跨平台呢为什么,什么是虚拟机阿
一般我们所谓的执行档
内容是一堆人类看不懂得机械码 是拿来给机器看的
因为他要直接指挥计算机去做事情 所以得写成机器可以执行的语言
问题是
每一台机器有自己的语言 每一个平台也有自己的语言
所以在不同的机器上 我们要用不同的执行档
那 Java 怎么达成一个程序 跨平台执行的呢~~
其实, Java 是在各种平台之上建立起他自己的平台
也就是所谓的 JVM (Java 虚拟机器)
再用 JVM 来执行他的类别档
因为不管在甚么平台上 实际执行类别档的都是 JVM
所以就可以达到 跨平台的目的
123456
类别档程式
______________________________|_________________________________
| | | |
Windows95/98版JVM WindowsNT系列JVM Linux版JVM Unix版JVM
| | | |
Windows95/98 WindowsNT/2000 Linux Unix
所以要执行 Java 的程序 就必须先在机器上启动 JVM 才行
而启动 JVM 的程序 就是所谓的 JRE
Java虚拟机是一个想象中的机器,在实际的计算机上通过软件模拟来实现。Java虚拟机有自己想象中的硬件,如处理器、堆栈、寄存器等,还具有相应的指令系统。
1.为什么要使用Java虚拟机
Java语言的一个非常重要的特点就是与平台的无关性。而使用Java虚拟机是实现这一特点的关键。一般的高级语言如果要在不同的平台上运行,至少需要编译成不同的目标代码。而引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译。Java语言使用模式Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。Java虚拟机在执行字节码时,把字节码解释成具体平台上的机器指令执行。
2.谁需要了解Java虚拟机
Java虚拟机是Java语言底层实现的基础,对Java语言感兴趣的人都应对Java虚拟机有个大概的了解。这有助于理解Java语言的一些性质,也有助于使用Java语言。对于要在特定平台上实现Java虚拟机的软件人员,Java语言的编译器作者以及要用硬件芯片实现Java虚拟机的人来说,则必须深刻理解Java虚拟机的规范。另外,如果你想扩展Java语言,或是把其它语言编译成Java语言的字节码,你也需要深入地了解Java虚拟机。
⑶ 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写的一份代码可以在任意的操作系统平台上运行。
为什么跨平台会成为一个问题呢?因为每一个操作系统平台支持不同的指令集我们所写的代码经过编译之后只能适用于一个平台,换一个平台就不支持了。而JAVA完美的解决了这个问题。
Java的一大特色就是“write once, run anywhere”即“一次编译,到处运行”。就是说你不用专门为每个平台写一份代码,你写的Java程序在任何平台都能跑起来。
它的实现原理是在系统层面上又增加了一层虚拟机(Java Virtual Machine,简称JVM),且为每个平台都定制了对应的虚拟机。然后Java程序是在虚拟机上跑的,因此平台无关。
Java的运行流程是:程序员写了源代码(Source Code,.java后缀,跨平台),然后经过编译器编译成字节码(Byte Code,.class后缀,二进制文件),字节码是所有虚拟机都能理解的中间文件。然后交给虚拟机(每个平台都有对应的虚拟机)去运行。
所以对“write once, run anywhere”更准确的理解是,“一次编译,到处装虚拟机,所以到处运行”。
整个流程如下图所示。
希望对您有所帮助!~
⑸ java为什么可以跨平台执行
java是跨平台的,就是生成的.class文件拿到任何系统平台都能运行,其实是建立在虚拟机上的,也就是jvm,你装jkd的时候就带了。
所有的java程序都是在虚拟机也就是jvm是运行的,而且jvm的版本也不同,有windows版本的还有linux版本的,正是因为有了不同的jvm才使得java可以跨平台。简单的说就是因为jvm的不跨平台才导致了java的跨平台,其实是一个过度。不象c语言他没有jvm,通过操作系统内核来编译,windows的操作系统编写的c,拿到linxu下就用不了。
打个比方,就象大家所知道的看电影有一种文件叫rmvb格式的,它拿到哪个平台都能运行,那是因为有realplayer,暴风等播放器的原因。不同的播放器有windows版 和linux版一个道理。
⑹ java的跨平台工作原理
首先我们要理解什么是跨平台,所谓的跨平台就是JAVA写的一份代码可以在任意的操作系统平台上运行。
为什么跨平台会成为一个问题呢?因为每一个操作系统平台支持不同的指令集我们所写的代码经过编译之后只能适用于一个平台,换一个平台就不支持了。而JAVA完美的解决了这个问题,JAVA是如何做到这一点的呢?在上图中我们可以看到JAVA代码执行的流程。
JAVA源代码->JAVA字节码->JVM解释执行
我们写的JAVA源代码会被编译为字节码,然后被JVM虚拟机解释执行,我们可以看到JVM虚拟机在跨平台的过程中发挥了重要的作用,就是由它解释字节码并执行的,对应于每一个平台都有一个JVM虚拟机,而字节码只有一份,windows的JVM虚拟机可以将字节码解释为能在windows平台上执行的指令并执行,Linux的JVM虚拟机可以将字节码解释为能在Linux平台上执行的指令并执行,他们执行的字节码都是同一份。这样就实现了跨平台。
⑺ java是如何实现跨平台运行的
在不同平台实现JVM Java虚拟机,然后Java应用运行在虚拟机上。
⑻ java跨平台原理,其他语言为什么不可以
C/C++语言都直接编译成针对特定平台机器码。如果要跨平台,需要使用相应的编译器重新编译。
Java源程序(.java)要先编译成与平台无关的字节码文件(.class),然后字节码文件再解释成机器码运行。解释是通过Java虚拟机来执行的。
字节码文件不面向任何具体平台,只面向虚拟机。
Java虚拟机是可运行Java字节码文件的虚拟计算机。不同平台的虚拟机是不同的,但它们都提供了相同的接口。
Java语言具有一次编译,到处运行的特点。就是说编译后的.class可以跨平台运行,前提是该平台具有相应的Java虚拟机。但是性能比C/C++要低。