社区
Java SE
帖子详情
java的跨平台到底是什么意思?
千树之影
2012-05-15 05:33:29
看了很多介绍java的书,书上往往都说java的目的是使程序能在不同的平台上跑。但仔细一看,又说需要在每个平台上运行一个相应的虚拟机。那么
c语言:代码->不同的平台用不同的编译器->运行。
java: 代码 -> 不同的平台用不同的虚拟机 ->运行。
既然这样和C语言的跨平台运行有什么区别吗?
是不是为一个新平台制作一个虚拟机比制作一个编译器容易?
...全文
808
15
打赏
收藏
java的跨平台到底是什么意思?
看了很多介绍java的书,书上往往都说java的目的是使程序能在不同的平台上跑。但仔细一看,又说需要在每个平台上运行一个相应的虚拟机。那么 c语言:代码->不同的平台用不同的编译器->运行。 java: 代码 -> 不同的平台用不同的虚拟机 ->运行。 既然这样和C语言的跨平台运行有什么区别吗? 是不是为一个新平台制作一个虚拟机比制作一个编译器容易?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
15 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
qinyifeng222
2013-12-15
打赏
举报
回复
楼上认为6楼就很清楚了?我认为2、3楼才比较清楚,你说一堆什么jvm class不针对操作系统什么的,那我也可以说C语言可以通过不同的编译器去面对不同的操作系统!
zhengqiqiqinqin
2012-05-15
打赏
举报
回复
我认为6楼的:
java跨平台主要是java编译方式决定的,因为java他是通过jvm java虚拟机先编译在执行,他编译的class文件是底层的实现不是针对操作系统的,所有什么操作系统并不影响java代码的执行。
解释的很清楚了~~~
未来纪元
2012-05-15
打赏
举报
回复
通过jvm,编译一次java程序,可以在每台有jvm的计算机上运行
szx0704
2012-05-15
打赏
举报
回复
java。。。一次编写,到处运行。。。。。只需要写一次,到任何平台都不需要再写了。而c语言却无法这样。。。
zwnylsf
2012-05-15
打赏
举报
回复
class文件跨平台,jvm跨不了平台,你写java你就跨平台,反正jvm你不用管
yousun4688
2012-05-15
打赏
举报
回复
一次编程,可以再不同操作系统上运行
Norfloxacin
2012-05-15
打赏
举报
回复
JAVA夸平台是说我们程序员只要管写程序架构算法,不用管你这程序是在什么系统运行的。因为不同系统有不同的系统api(理解成一些可以控制计算机的函数吧,比如显示图像什么的),就是说你在不同系统上写的程序会不一样的,但是java是夸平台的,同样的程序在什么系统都能跑。JAVA能夸平台是因为java是运行在JVM虚拟机上的,JVM解决了平台的不一性(这说明JVM是每个平台不一样的,是针对平台写的),我门写的JAVA代码交给JVM翻译,它翻译成本地机器码,所以说JAVA是夸平台,但是JVM不是跨平台
peacerenxiaoming
2012-05-15
打赏
举报
回复
java的跨平台性是指java编写的程序能在多个操作系统上运行,因为它的实际运行是靠虚拟机与操作系统无关,而C语言没有跨平台性是因为它只能在Windows操作系统上运行,因为Windows上有了识别C语言的程序。
无星的夜空
2012-05-15
打赏
举报
回复
java跨平台主要是java编译方式决定的,因为java他是通过jvm java虚拟机先编译在执行,他编译的class文件是底层的实现不是针对操作系统的,所有什么操作系统并不影响java代码的执行。
allan_chan
2012-05-15
打赏
举报
回复
[Quote=引用 3 楼 的回复:]
java的跨平台,是指java运行时候凌驾于os之上,是在jvm中运行的,跟os没有直接联系。
如果有机会写数据导入导出,和服务器之间交互的应用,就会知道“跨平台”有什么意义了。
在java之前,跨平台是很痛苦的事情,主要是因为所有对于系统的调用,在不同的操作系统下结果都不一样,简单的来说,int的长度在不同操作系统里面就不一样,甚至于连字节排列的顺序都不同。调用同一个函数返回的……
[/Quote]
说的很详细
BadPattern
2012-05-15
打赏
举报
回复
[Quote=引用 3 楼 的回复:]
java的跨平台,是指java运行时候凌驾于os之上,是在jvm中运行的,跟os没有直接联系。
如果有机会写数据导入导出,和服务器之间交互的应用,就会知道“跨平台”有什么意义了。
在java之前,跨平台是很痛苦的事情,主要是因为所有对于系统的调用,在不同的操作系统下结果都不一样,简单的来说,int的长度在不同操作系统里面就不一样,甚至于连字节排列的顺序都不同。调用同一个函数返回……
[/Quote]
说的很好
昨日凡阳
2012-05-15
打赏
举报
回复
java的跨平台,是指java运行时候凌驾于os之上,是在jvm中运行的,跟os没有直接联系。
如果有机会写数据导入导出,和服务器之间交互的应用,就会知道“跨平台”有什么意义了。
在java之前,跨平台是很痛苦的事情,主要是因为所有对于系统的调用,在不同的操作系统下结果都不一样,简单的来说,int的长度在不同操作系统里面就不一样,甚至于连字节排列的顺序都不同。调用同一个函数返回的格式也不同,因此,写程序的人自己要对不同的系统非常了解,如果真的需要对不同操作系统进行兼容,要在程序里面写很多if,编译的时候要先判断使用的操作系统,创造很多环境变量才能编译,而且编译好的二进制可执行文件只能在本系统上运行。如果你写的是个功能库供别人调用的,那么光对操作系统的判断就占了代码的绝大部分,而且,还要你在不同平台下进行测试,这可是个艰苦卓绝的工作。建议你有空可以看看apache httpd服务器的源代码就知道了。
自从有了java之后,就把操作系统兼容的工作丢给了jvm了,对于程序员来说就再也不要关心int有几位,还有高位在前还是地位在前的问题了,你只要用java的代码把你程序的逻辑实现出来就可以了,这些兼容的问题就交给jvm去处理吧。这样,如果你写一个程序交付给客户使用,如果客户的环境是运行AIX的,你就不需要在本地也装一个AIX来开发和运行,你可以在windows上完成所有的开发,然后把编译好的文件交给客户就可以了,以后有别的客户需要在Solaris上运行这个程序,你都不用修改,直接拿过去就可以运行,这难道不是一种方便吗?只有被跨平台开发折磨过的人才能更深得体会到用java开发跨平台应用的优势。
BadPattern
2012-05-15
打赏
举报
回复
意思就是java的跨平台交给虚拟机来完成了,而c语言的编译器却搞不定跨平台(系统调用,基于某种编译器的语法,某些特定的库函数,基于某个特定字长的cpu编写程序等)
BadPattern
2012-05-15
打赏
举报
回复
c语言给了程序员太多的权力,你阻止不了通过c语言来进行系统调用,所以除非特意写成可移植的c程序,否则一般跨不了平台.
而java语言则不同了,无论你写什么样的程序(jni除外),都需要经过虚拟机解释执行,因此是跨平台的
JAVA
_API1.6文档(中文)
java
.util.logging 提供
Java
TM 2 平台核心日志工具的类和接口。
java
.util.prefs 此包允许应用程序存储并获取用户和系统首选项和配置数据。
java
.util.regex 用于匹配字符序列与正则表达式指定模式的类。
java
....
java
跨平台
是
什么意思
?
JAVA
跨平台
第一次学习
java
,老师就说了
java
是一门能够实现
跨平台
的语言。但是什么是
跨平台
,
java
为什么能够
跨平台
,我们就不清楚了。 什么是
跨平台
跨平台
:是指
java
语言编写的程序,能够在不同的系统平台上运行...
Java
是如何实现
跨平台
的?原理是什么?
了解过
java
语言的小伙伴肯定都知道,
Java
语言的
跨平台
性决定了
Java
语言的应用领域十分广泛,那么你知道
Java
跨平台
的原理是什么吗?它究竟是如何实现
跨平台
的呢?今天小千就来给大家介绍一下。
Java
跨平台
的原理 ...
Java
跨平台
是
什么意思
?
Java
跨平台
是
什么意思
?
Java
语言是
跨平台
性的。
Java
程序(后缀为
java
的文件)在
Java
平台上被编译为体系结构中立的字节码格式(后缀为class的文件),然后可以在实现这个
Java
平台的任何系统中运行。
Java
程序的运行...
JAVA
实现
跨平台
的原理是什么?(有图,简要明了)
1.什么是
跨平台
以及其如何实现? 相信大家看到很多
JAVA
书上都会说,
JAVA
的一大特性是可以实现
跨平台
,那么什么是
跨平台
呢?
JAVA
又是怎么实现的呢?
跨平台
,是指
java
语言编写...
Java
跨平台
原理: 由源文件(.
java
)—>
Java SE
62,615
社区成员
307,307
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章