Android 编译器及编译工具之编译器
习惯了 IDE 以及各种现成的编译工具为我们提供便捷的编译方式,我们很少会操心编译工具的编译过程和原理,但是工具越高级,隐藏的细节就越多,这样编译遇到问题时我们难以定位,遇到复杂的项目(尤其跨平台项目难以用 ide)时不知如何下手。所以准备写两篇关于编译器和编译工具的文章。本文先来介绍编译工具。
主要从事 Android 开发,本文主要介绍 Android、iOS 用到的编程语言及编译器。
Java/Kotlin/Groovy
这三种编程语言都是基于 Java 虚拟机的。由于 JVM 的存在,所以 Java 既是编译型语言,又是解释型语言。将 JVM 理解成操作系统,它是编译型语言;从物理操作系统的角度,它又是解释型的。JVM 负责把编译成的.class 解释成最终 CPU 理解的二进制字节。它为了实现跨平台牺牲了效率。
Java 编译工具
我们还是先以一个最简单的 HelloWorld 开始。
复制代码
命名成 HelloWorld.java。还记得 Java 为我们分别提供了编译工具 javac 和执行工具 java 吗?我们使用 javac 编译:
复制代码
在与 HelloWorld.java 统计目录下看到生成了 HelloWorld.class,我们继续执行该 class 文件:
复制代码
报错了,我们回想一下java
的参数,传入的是 main 函数所在的类的名字,而不是 class 文件;java 会根据类名自动去找 class 文件。我们改成java HelloWorld
就可以成功看到输出结果了。
带包名类编译
上面例子太简单了,我们加上包名来一遍:
复制代码
评论