jvm同样可以执行其它语言的代码,如ruby,js只要他们编译成符合规范的字节码
相关信息可以百度jruby等
而java本身编译字节码的工具也就是我们都知道的javac.exe
然而我们在eclipse中的编译工作并不是读取jdk执行javac实现的,而是使用了eclipse自带的ECJ编译器实现的,javac采用的是全量编译,而ecj使用的是增量编译,tomcat也使用ecj编译jsp页面
编译分为4部分
词法分析
将源码中的关键字和标识符等内容转换为符合java语法规范的token序列,然后按照指定的顺序规则进行匹配校验(转换并校验关键字和标识符是否正确)
2.语法分析
将token序列整合为一个语法树,如try后面要接catch(生成语法树并校验语法是否正确)
3.语义分析
扩充语法树
4.生成字节码(后续详细讲解)
如何下载部署javac编译器源码
download.java.net/openjdk/jdk8
新建java项目,并将下载的压缩文件中的/langtools/src/share/classes文件夹下的文件导入或copy到代码区,注意设置你的eclipse编译器版本为1.5以上,同时jre尽量使用eclipse自带的
原文地址:http://newyoung.blog.51cto.com/8028763/1787168