新建项目与开发环境
新建项目与开发环境
为什么选择Kotlin
最主要是开箱即用问题。Kotlin的入门真的是简单太多了!推荐看中文的Kotlin教程入手语法。book.kotlincn.net
此外,Kotlin拥有一系列的语法设计,非常吸引我,所以用Kotlin!
- 支持高阶函数
- 支持领域特定语言DSL(Domain Specific Language)式的设计
- Trailing Lambda的设计:函数调用尾部的lambda可以移动到括号外,参数只有lambda的时候可以去掉括号
- 中缀运算符
- 运算符重载
- 大括号语法的统一设计:lambda表达式和代码块都是大括号
- 支持when表达式进行一定程度的分支匹配(没有很强的模式匹配扣分!比原版Java还不如!)
下载JDK
Kotlin支持在JVM上运行,因此这里我们选择JDK17作为我们的环境。
下载Intellij IDEA
Kotlin作为Jetbrains推出的编程语言,其官方IDE自然是Jetbrains推出的最强大的IDE——Intellij IDEA。
从IDEA的官网下载Intellij IDEA Community Edition。

安装插件
点击【文件 File】->【设置 Settings】->【插件 Plugins】
我们需要安装几个插件:
中文语言包:简体中文插件
ANTLR v4:支持Antlr语法预览的插件,后续会使用到

新建项目

这里我们建一个项目名称为LearnCompiler
的项目。
等待构建完成。如果这里出现下载gradle.zip
异常的话,请根据附录的步骤修改下载的源。
Hello World!
点击左侧的【启动图标】

接下来会在IDEA的控制台栏目中看到输出结果。
配置Gradle
Gradle是什么?
Gradle是Java平台的一个项目管理工具,可以采用Kotlin 语言编写脚本参与项目构建, 整合Kotlin/Java项目的整体编译流程。
https://docs.gradle.org/current/userguide/userguide.html
认识Gradle的配置文件
打开项目build.gradle.kts
文件,然后跟着注释观察一下该文件:
plugins { //gradle插件,为项目构建提供支持的插件
kotlin("jvm") version "1.9.21" //这里用了kotlin插件
}
group = "org.example"
version = "1.0-SNAPSHOT"
repositories { //项目依赖的获取仓库
mavenCentral()
}
dependencies { //项目依赖
testImplementation("org.jetbrains.kotlin:kotlin-test")
}
tasks.test { //一些编译构建的任务配置
useJUnitPlatform()
}
kotlin { //gradle的kotlin的配置
jvmToolchain(17)
}
运行Gradle任务
点击右侧【大象图标】,找到【build】任务,双击运行

在项目路径下build/libs/
可以看到我们打包好的jar包。

可以通过命令行java -jar xxx.jar
(xxx改为jar包的名称)运行我们的jar包程序
也可以右键jar包,点击【运行】或者【调试】来调试jar包。

配置项目Gradle
当然现在是有问题的,无法运行。提示.jar中没有主清单属性。
我们需要按如下方式配置build.gradle.kts
文件
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
plugins {
kotlin("jvm") version "1.9.21"
application //添加application插件
antlr //添加antlr插件
}
group = "org.example"
version = "1.0-SNAPSHOT"
repositories {
mavenCentral()
}
dependencies {
testImplementation("org.jetbrains.kotlin:kotlin-test")
antlr("org.antlr:antlr4:4.13.1") //添加antlr依赖
}
tasks.generateGrammarSource { //antlr的任务配置
arguments = arguments + listOf("-visitor", "-long-messages")
// outputDirectory = File("src/gen")
}
tasks.jar{
manifest{
attributes("Main-Class" to "org.example.MainKt") //清单文件配置
}
}
application {
mainClass.set("org.example.MainKt") //application文件配置
}
tasks.test {
useJUnitPlatform()
}
kotlin {
jvmToolchain(17)
}
tasks.withType<KotlinCompile> {
dependsOn(tasks.generateGrammarSource) //调整生成语法文件的顺序,在编译之前就要生成了
}
调整后,点击右侧【大象图标】->【刷新图标】

再次执行build任务,再次运行jar包。
附录:下载Gradle异常
打开项目文件夹下:gradle/wrapper/gradle-wrapper.properties
修改distributionUrl
这一项为:
distributionUrl=https\://mirrors.cloud.tencent.com/gradle/gradle-8.4-bin.zip
点击右侧【大象图标】->【刷新图标】
