所有JDK中的java编译器是否相同?

时间:2013-11-28 15:09:07

标签: java openjdk jls

'javac'是将Java代码(.java)转换为字节码(.class)的Java编译器。

根据Oracle

  • 编译器接受Java语言规范(JLS)
  • 定义的源代码
  • 并生成由Java虚拟机规范(JVMS)
  • 定义的类文件

同样的'javac'是否与OpenJDK,Oracle JDK等所有JDK一样,或者他们实现了自己的'javac'

3 个答案:

答案 0 :(得分:0)

是的,除了一些小错误和更改外,所有JDK都是一样的。 Javac不是供应商特定的,但是,不同的编译器在他们自己的实现中可能会有不同的错误,这可能会造成轻微的差异。

因此,在一个JDK中编译的代码可能'不能在JDK中另一个编译,因此当在JDK之间切换时,最好进行一些严格的测试以确保一切正常工作

答案 1 :(得分:0)

据我所知,wikipedia compilers list只列出了5个Java编译器,Javac是唯一一个将被列出的JDK使用的编译器。可能IBM的JDK会使用他们自己的编译器。我没有找到IBM假设的任何链接或参考,但它是有意义的。

答案 2 :(得分:0)

它在所有现代JDK中往往是相同的Java编译器 - 但是 Eclipse使用自己的Java编译器,而不是JDK的编译器。