Java没有虚拟机什么都干不了,为什么还有人用呢?

Java没有虚拟机无法运行程序,不可能让所有人都装虚拟机啊。
那不是编出来程序也没用么?求高手指教。
1.谢谢大家的回答!那么.net是不是网络单机都可以呢?那岂不是更好?
2.现在全世界90%的电脑都是windows系统,编一个程序直接在90%的电脑上都能运行。多好!
但不可能在大家的电脑上都装虚拟机,所以按绝对数量来说,Java好像不行。看来真的是只能用于服务器了。
3.谢谢大家的回答,长见识了。不过不要怪我水平低,一流人才去欧美,二流的在国内,三流的才来日本麽。我旁边都没人用Java,觉得很郁闷。

这可能要从操作系统上来说

服务器操作系统有很多
收费的系统有 unix ,windows等
免费的主要是 linux.
一般来说 windows 对的数据库是mssql 这两者的使用费用都相当昂贵. 具体来说都是好几十万的算.
unix的话 最稳定,一般国家基础电信系统都是unix. unix是最贵的操作系统了听说是百万级别的(money)

所以一般上了一定的规模 但是不想因为使用windows盗版而引来官司的话 都是使用linux+mysql 数据作为程序的基础支撑. 但是一般开发上用的多的系统都是windows 所以就存在了程序的跨平台问题,java就是看准了这个问题才出来的,借助于java vm的支持 能让java程序在所有环境下运行(官方语言),程序发展(web)最终使用的平台都是unix 所以java就能在之间一直运行.

很显然java的模式其实很大程度上模拟了dll的实现,但是dll的话只能在windows平台下运行.java只能在jvm上运行.原理是一样不知道您能不能理解,要知道sun也是做操作系统的 只是没有在市场中占到领导位置,所以退到了二线来做java虚拟机.但是发现这个很有远景,所以微软也改写了dll的规范 提出了.net的构思,在.net2.0的框架里面这个有很大的优化,但是微软一直是一个垄断公司他的目标都是销售他的操作系统,这是他的最终目标,所以他不会考虑跨平台的问题,所以java在很大程度上有优势也有益于我们的系统,但是要知道服务器系统最终都是走向unix所以都需要花钱的 哈哈. 不过说了这么多我也没说明白java的好处,
但是要知道java在j2ee上很有前途.毕竟发展了好多年啊.基础构件都比.net优秀.但是在窗体开发上java并不优秀.j2ms的话抄做的比较厉害,实际做的人不多.
温馨提示:内容为网友见解,仅供参考
第1个回答  2008-04-03
你以为用c++或其他语言编的程序就可以随处用吗,他们的适用性更窄,你所接触的无非就是pc机+windows
第2个回答  2008-04-03
开发人员之所以开发,就是因为实际需要。明白吗?事先做好了需求分析的,如果不适合用java,他们就不用java了。
操作系统很多种,应用环境很多种,适用范围很多种,哪有以偏概全来说的?c和asm适合做底层的与硬件接口的程序,java适合做跨平台的应用。为什么现在手机游戏只是java的大行其道?就是因为开发成本,开发效率在起作用。因为手机终端种类繁多,要适配每种机型的话,如果针对每个机器做一个适配,那成本高的不值得开发了。但是KVM提供了一层抽象,让开发人员不用关心机器底层的东西,这就保证了开发一次,只需要做少量变动就可以在不同机型上很好的运行。同样,如果做一些数控程序,用java显然是不合理的,效率无法保证,而且一般情况下,选用的芯片很明确,无需大规模的移植到其他硬件上,因此针对特定硬件开发即可,所以用c来提高开发效率,用asm提高执行效率。明白否
另外,大部分java程序不是为了做单机程序的,而是做服务器程序,手机程序等,因此你问的问题有点风马牛不相及。
第3个回答  2008-04-03
java网络开发,在服务器上装了虚拟机就ok了,客户端只要有浏览器就可以访问服务端,什么软件都不用装!!!

当然.net也可以开发网络服务,但是它不是开源的,只有微软提供了它才能用,内部一些东西开发人员根本不知道,而且用j2ee开发有现成的框架用,效率高,速度快,成本低,这也是为什么j2ee如此普及的一个重要原因
第4个回答  2008-04-03
说的好多啊,我估计你的电脑应该就访问过JSP页面,但是你有安装JDK吗?估计没有,但是你为什么还能访问呢 ,原因就是你的机器不是直接去读JAVA代码的,而是去读经过服务器转换成的HTML语言,这中语言所有的浏览器都支持,不管你有没有虚拟机。俗话:一次编译,到处运行!呵呵
第5个回答  2008-04-03
答主问题:世界上99%的浏览器都集成了JAVA虚拟机.而JAVA应用最大的领域就是WEB.
答补充问题:
1. .net原理上和JAVA差不多,也是需要虚拟机支持.
2. 领域不同桌面软件有更好的语言来编辑.你看看网络游戏大部分是C++来做的,桌面管理软件一般也都是VB等软件做出来的.而.net竞争的也是WEB这一块.大部分企业WEB服务器是在LINUX系统上.
3. JAVA还会继续下去的. 虽然.net现在很流行.

Java没有虚拟机什么都干不了,为什么还有人用呢?
很显然java的模式其实很大程度上模拟了dll的实现,但是dll的话只能在windows平台下运行.java只能在jvm上运行.原理是一样不知道您能不能理解,要知道sun也是做操作系统的 只是没有在市场中占到领导位置,所以退到了二线来做java虚拟机.但是发现这个很有远景,所以微软也改写了dll的规范 提出了.net的构思,在....

关于java虚拟机的一些问题,我还什么都不动,谁给个教程 谢谢了
Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。Java虚拟机在执行字节码时,把字节码解释成具体平台上的机器指令执行。 2.谁需要了解Java虚拟机 Java虚拟机是Java语言底层实现的基础,对Java语言感兴趣的人都应对Java虚拟...

为什么使用Java虚拟机?
1. 学校的机房,都是由机房的管理员负责安装好系统,机房的机器一般是不允许学生自己安装系统,更不准学生对硬盘分区,对硬盘进行格式化,这在学校来说是不能容忍的,也是不现实的。2. 即使学生自己有机器,配置也很高,但也很少有学生在自己的机器上分区、格式化、频繁安装新的系统,如果总对硬盘进行...

为什么要学习java虚拟机的使用?
Java作为应用广的语言,自然吸引了不少的攻击,而身为Java程序员的你,或许在口水战中落了下风,忿忿于没有足够的知识武装自己;又或许想要深入学习Java语言,却又无从下手。甚至是在实践中被Java的启动性能、内存耗费所震惊,因此对Java语言本身产生了种种的怀疑与顾虑。不过别担心,学习Java虚拟机,就...

为什么JAVA运行要用到JAVA虚拟机,而 C 语言不用呢??
我跟你清除点说,java是一次编译到处运行的,听说过这句话吧。其实java这个到处运行的特性被java虚拟机来完成了,所以java必须要虚拟机。从另一个角度,java程序首先被编译成*.class文件,然后,虚拟机在将*.class文件编译成本地机器能执行的机器语言,这步是由java虚拟机完成的;与c不同,c编译时一...

java这么烂为什么还有那么多人用
1.8都多少年了,那代码优美度写的要和C#放一起就是乞丐,语言强大和python比就是垃圾,真的Java走到死路了,10年前大家可能没注意到,但Android出来后Java问题越来越严重,问题全暴露,java虚拟机稳定性、资源占用,真是多大的马也拉不动Java,就如魔兽争霸别说你机器配置多高,6v6、10v10卡死你 ...

JAVA 虚拟机有什么用。一定要装吗
写或运行java程序要装JAVA 虚拟机,它在不同的系统上搭建了自己的统一平台,使得java程序可以在所有装了JAVA 虚拟机的系统上正常运行

为什么那么多公司不用 .NET,而选择PHP、JSP,是 .NET有什么缺点吗?
PHP之所以能存活,就是linux免费,MySQL免费,Apache免费,PHP免费,就连框架都免费;JAVA跟PHP差不多。这种生态下导致了代码资源非常丰富,天下一般抄,开发成本就更低了。所以不是微软的东西不好,是JAVA和PHP开发成本太低了。用过对比你会发现,贵有贵的道理,所有开发帮助文档中,没有比微软做的更详尽的。 如果你是一...

已经安装过jdk,为什么打开eclipse时,还显示没有Java虚拟机
你jdk的环境变量配错了。环境变量这样配置就好了,然后可以再命令行输入命令 java -version 查看java的版本,如果显示出来,那就是jdk安装成功。这样安装jdk有个好处就是,改变JAVA_HOME里面的目录就可以改变jdk的版本。你千万要注意,不要安装版的jdk,如果jdk是安装版的,会有注册表,这样配置环境变量...

现在学java有前途吗?没有任何计算机基础的人
而且培训机构有系统的教学体系和经验丰富的讲师,对于学习java的人来说会比自学的人容易非常多。但是要注意的是java属于新兴行业,行业标准不规范,各种培训机构水平参差不齐。有一些不责任的培训机构,虽然给出了就业承诺,但就什么样的“业”却是有很多可能的,而且学员的就业率与老师薪酬挂钩,无论怎样...

相似回答