java的跨平台是不是指同一个源程序在windows电脑上运行就能得到一个适合windows电脑的

java的跨平台是不是指同一个源程序在windows电脑上运行就能得到一个适合windows电脑的exe安装包?而在安卓机上运行就能得到一个适合安卓的apk安装包?... java的跨平台是不是指同一个源程序在windows电脑上运行就能得到一个适合windows电脑的exe安装包?而在安卓机上运行就能得到一个适合安卓的apk安装包? 展开
 我来答
mikemelon2012
2014-05-24 · TA获得超过3633个赞
知道大有可为答主
回答量:938
采纳率:87%
帮助的人:376万
展开全部
不是,Java的跨平台,是指“一次编译,到处运行”,是指Java源代码编译后的字节码(.class)文件可以在不同操作系统上运行(Windows, Linux, MAC等),而这些操作系统上需要有JRE(Java Runtime Enviorment)即虚拟机。

至于Android,只不过是借用了Java编程语言,是Google开发的另一个平台,它用的虚拟机和一般意义上的Java虚拟机JVM(Oracle /SUN的)不一样,叫Dalvik VM,它还需要把Java标准字节码文件(.class) 转换为Davik虚拟机代码(.dex)。apk安装包实际上就是压缩了dex文件的压缩包。

这个跨平台,不包括Android的,这主要是历史原因,Oracle还和Google打了场官司,你可以了解一下。Oracle对Java每推出一个新版本JDK,Google就要快速跟进,创造一些工具(ADT)让其能转化为Davik VM代码。
匿名用户
2014-05-24
展开全部
不是这样理解的。
首先要理解java程序的运行过程,我们写好的是java后缀的文件,然后编译被JVM编译,编译成class后缀文件。这个文件叫做字节码文件,这个字节码文件才是跨平台的关键,因为这个字节码文件无论在什么平台上都是完全一样的。
但是运行的时候呢,被JVM运行。也就是把class文件扔到JVM中来运行。JVM赖以生存的环境叫做jre,这个东西是和平台打交道的。
比如sun开发了windows的jre,那么同一个class扔到JVM,JVM用这个jre和window打交道。
比如sun开发了linux的jre,那么同一个class扔到JVM,JVM用这个jre和linux打交道。
变化的东西sun都帮我们封装好了,我们只需要编写好java,就能够达到一处编译处处运行的跨平台的“神奇”效果。

至于你说的android,编写android程序:全部的java语法+java核心api+android api。
所以,使用的api是不同的。这个和一处编译处处运行是两码事。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式