社区
Java SE
帖子详情
java的跨平台到底是什么意思?
千树之影
2012-05-15 05:33:29
看了很多介绍java的书,书上往往都说java的目的是使程序能在不同的平台上跑。但仔细一看,又说需要在每个平台上运行一个相应的虚拟机。那么
c语言:代码->不同的平台用不同的编译器->运行。
java: 代码 -> 不同的平台用不同的虚拟机 ->运行。
既然这样和C语言的跨平台运行有什么区别吗?
是不是为一个新平台制作一个虚拟机比制作一个编译器容易?
...全文
1032
15
打赏
收藏
java的跨平台到底是什么意思?
看了很多介绍java的书,书上往往都说java的目的是使程序能在不同的平台上跑。但仔细一看,又说需要在每个平台上运行一个相应的虚拟机。那么 c语言:代码->不同的平台用不同的编译器->运行。 java: 代码 -> 不同的平台用不同的虚拟机 ->运行。 既然这样和C语言的跨平台运行有什么区别吗? 是不是为一个新平台制作一个虚拟机比制作一个编译器容易?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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
API文档 中文网页版
HTML格式的优点是
跨平台
且易于阅读,同时支持链接跳转,使得在文档中查找相关类和方法变得简单快捷。 在使用
Java
API文档时,开发者通常会关注以下几个方面: 1. 类(Class):了解类的职责、构造器、属性和方法。...
超漂亮的纯
JAVA
浏览器
这样的浏览器通常利用
Java
的
跨平台
特性,可以在多种操作系统上运行,包括Windows、Mac OS以及Linux等。由于是纯
Java
实现,这意味着它并不依赖于用户计算机上已安装的特定浏览器版本,而是自带有独立的渲染引擎。 在...
一个牛人给
java
初学者的建议
Java
的另一大优势在于其
跨平台
能力,这得益于
Java
虚拟机(JVM)。无论是在Windows、Unix还是其他操作系统上,只要安装了JVM,
Java
程序就能够运行,无需重新编译。这种
跨平台
性极大地扩展了
Java
的应用范围,使其能够...
Java
使用开源Rxtx实现串口通讯 串口开发
5. **平台兼容性**:Rxtx库是
跨平台
的,可以在Windows、Linux、Mac OS X等多种操作系统上运行,使得
Java
串口程序具有良好的移植性。 在使用Rxtx时,开发者需要首先添加Rxtx的JAR文件到项目类路径中。然后,通过`...
Java SE
62,634
社区成员
307,266
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章