jvm源码编译windows
⑴ 关于java程序在Windows下运行的疑问!
Java程序是垮平台的,在windows上也能顺利运行! 目前我所知道的在windows上运行的方法是 javac 再 java 或者在IDE里执行!
跨平台性说得就是可移植性好,什么叫可移植性好呢?就是你在你的机器上编写的代码或者代码编译的class文件可以拿到别的机器上去运行,而这个别的机器可以是windows或者是linux或者是别的什么系统,但是有个问题,用C写得程序也可以拿到别的机器上运行,但这是有条件的,就是必须都是windows系统,因为C调运了很多操作系统内的函数什么的,但JAVA没有,纯JAVA的语言所有的功能都是用JAVA写成的,最典型的就是窗体,JAVA是画的模拟出来的,但是像VB,可能就是调用的操作系统的窗体,所以说JAVA的可移植性较好
也就是它的跨平台性比较好
现在我们再说一下JAVA的运行方式,你写的代码是保存为.java文件的,JAVA编译器把JAVA文件编译为字节码文件(一种二进制文件),然后JAVA解释器再解释这种二进制文件然后执行
也就是说,写代码一般用JAVA解释器和编译器,但是运行由JAVA解释器就可以了
可是如果我要把我的程序给别人用,难道我要把我的CLASS文件复制给别人 再叫别人安装JDK或者JRE在CMD下用命令行来执行吗???
如果你把你的class文件复制给别人,那么它的机器必须的安装JAVA解释器才可以执行,这是必须的~~没有解决的方式
但是你还要明白一个问陪扒题~~JAVA主要是运行在网络环境下的,这也是它的优势和发展的动力,做j2ee项目时,他只要做网站的后台,扮薯而客户只要有浏览器就可以获得由JAVA在后台得到的数据,这时并不需要客户安装JAVA解释器,因为JAVA文件是在后台服务器上运行的
一般来说很少有用JAVA做桌面应用的,他就不适合来做,而且效果还没有芦缺昌vc++的好,所以并不需要客户大规模的安装JAVA运行环境
⑵ 为什么C语言编译器编出的软件,只能在windows下运行
没有这回事。
首先,C语言是编译型语言。同样的代码,使用windows下的编译器产生的可执行文件就只能在windows下运行,但是用linux下的编译器编译出来的可执行文件就可以在linux下面运行。因此跟你所处的环境有关,而跟C语言编译器本质上并没有太大的区别。
举个例子,比如gcc编译器,有windows版本,也有linux版本,用不同的版本编译,就能运行于不同的环境。
然后说一下解释性语言,比如java,所有的java代码都运行于虚拟机jvm上,是靠jvm来解释执行,jvm在这里也就充当了上面编译器的角色(只能说类似)。所有java代码可以直接跨平台执行,因为不同版本的jvm已经有人为我们做好了。