1. linux编译器(如gcc)与windows编译器(vc6.0)有什么区别求详细的解答,和例证!
你好!编译器(在windows下,javac.exe)将源代码(java文件)编译为字节码(bytecode),存放在class文件中。
字节码不能直接在机器上执行,而是通过虚拟机(windows下是java.exe)执行。具体的执行方式有两种:
1. 一般情况下解释执行。解释执行并不是“解释为用c++语言写成的程序”,而是jvm把字节码看成脚本,根据字节码中的指令,由JVM去调用实际的本地方法。
2. 在打开了JIT参数的前提下,jvm会把执行过程中发现的热点位置,由jvm内部的即时编译器编译为本地机器码直接执行。
编译器将java文件编译为class文件,解释器将class文件变为机器语言
2. windows下怎么运行java应用程序
vista我不知道 windowsXp有的版本装了微软的java虚拟机,但这个和sun的不一样,应该是支持J#的吧,虽然也用java.exe,javac.exe但编译不了,*.java文件, 开始也让我糊涂了一阵, 想在windows上运行java的应用程序,一定要安装sun的java虚拟机, 然后把应用程序工程打好一个jar包,双击那个jar就可以运行了。 但这个办法并不是很保险,如果编译版本与运行版本有差异的话经常不可用, 我用着最保险的办法是在jar同级的目录中放一个run.bat文件 文件内容一般是 java -jar ***.jar 然后双击run.bat就可以了。 如果你这个应用程序还需要其它的jar包支持,需要加上-classpath参数。 如果你觉得bat文件不好看,可以去找bat2exe这样的工具, 用bat做成一个exe文件, 但运行java程序的前提是你一定要安了jvm 以上,如有问题再联系 amemiyareiji 朋友说的将应用程序做成了exe就不用jvm了,这个我也曾找了好一阵,但没有一个可以脱离jvm的,不知道这个朋友用什么工具做的?以前虽然用jbuilder可以导出exe但没有能脱离jvm 2003-2006这几年间我不下用了三十多种将jar转换成exe的工具,但没有一个可以脱离jvm的, eclipse的启运程序,没有jdk也是不行的。 如果amemiyareiji 朋友的工具真的可以脱离jvm请告诉工具名称。 回复 amemiyareiji 你说的工具我试了一下,生成的Exe文件是 Untitled.exe 我把他拿到了一个新装的系统里运行 环境winXp SP2,没有JDK,没安jet-640-eval-en-win32.exe 就出现下面的错误,这个工具还需要做什么? D:\>Untitled Fatal error: Excelsior JET 6.40 installation cannot be found. HOW TO FIX: If you port compiled executables to other machines, please, use the JetPackII deployment wizard (see JET User's Guide, "Deployment Automation" for details). Otherwise, include the JET/bin directory into PATH or reinstall JET. D:\> 我这个测试的代码只是显示一个窗体,只用JDK自身的包就可以了,不需引用其它包