Javac是否与平台无关

时间:2014-09-04 05:34:52

标签: java javac

我是Java的新手,有人澄清我对平台独立性的疑虑,我知道Java是一种独立于平台的语言,而JVM是依赖于平台的,但是独立于Java编译器平台吗?

5 个答案:

答案 0 :(得分:6)

您的问题涉及四个要素:

  1. 程序的Java源代码
  2. javac编译器
  3. 编译器编译源代码时生成的字节码
  4. 执行字节码以运行程序的Java虚拟机(JVM)。 (这是您键入java MyMainClass时运行的程序。)
  5. 第1项和第3项与平台无关(除非您的程序使用与平台相关的外部库)。第2项和第4项与平台相关(即每个平台 - Windows,Linux,Mac等 - 使用自己的javac版本和JVM)。

    结果是您可以在运行javac的任何平台上编译Java程序,然后在同一平台或任何其他具有JVM的平台上执行该程序。

答案 1 :(得分:2)

javac不是平台独立的,每个平台都有自己的可执行形式javac

即。你不能通过linux jdk复制到windows并期望它能够正常工作

答案 2 :(得分:1)

java编译器的(实现)与平台无关。它将源代码编译为 platform -inpendent的字节码,该字节码由平台相关的 JVM执行。

答案 3 :(得分:0)

从技术上讲,JVM与平台无关,因为您必须下载这些工具的平台特定版本。 java编译器生成与平台无关的字节代码(.class文件)

答案 4 :(得分:0)

在Windows javac中,似乎采用.exe格式,这意味着它与平台有关。每个平台都有不同的java编译器。