第一个 Kotlin 程序
2025-01-24 22:00:41

配置开发环境

  1. 下载安装 Java,这个网上有太多资料,不说了。
  2. 去国内镜像站下载 Gradle,比如腾讯的 https://mirrors.cloud.tencent.com/gradle/。解压后将其bin目录加入系统环境变量PATH中。
    打开控制台输入gradle -v验证一下:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    ------------------------------------------------------------
    Gradle 8.13-milestone-3
    ------------------------------------------------------------

    Build time: 2025-01-21 16:46:36 UTC
    Revision: 008d02e96f845b2d5a628758831c97d305983d68

    Kotlin: 2.0.21
    Groovy: 3.0.22
    Ant: Apache Ant(TM) version 1.10.15 compiled on August 25 2024
    Launcher JVM: 22.0.1 (Oracle Corporation 22.0.1+8-16)
    Daemon JVM: C:\Program Files\Java\jdk-22 (no JDK specified, using current Java home)
    OS: Windows 11 10.0 amd64


注意,gradle -v显示的是Gradle自身用来解析build.gradle.kts的 Kotlin 版本

  • 这个版本是 Gradle 内置的,用于构建脚本
  • 主要用于支持 Kotlin DSL(即 .kts 文件)

因为Gradle会自动下载项目所依赖的 Kotlin,所以不需要自行安装 Kotlin。

新建项目

项目结构:

1
2
3
4
5
6
7
hello/
├── build.gradle.kts
├── settings.gradle.kts
└── src/
└── main/
└── kotlin/
└── Main.kt

settings.gradle.kts

1
rootProject.name = "hello"

build.gradle.kts

1
2
3
4
5
6
7
8
9
10
11
12
13
14
plugins {
kotlin("jvm") version "2.1.0"
application
}

repositories {
maven("https://maven.aliyun.com/repository/public")
maven("https://maven.aliyun.com/repository/google")
maven("https://maven.aliyun.com/repository/gradle-plugin")
}

application {
mainClass.set("MainKt")
}

Main.kt

1
2
3
fun main() {
println("Hello, World!")
}

运行:

1
gradle run

构建可执行 jar 包

1
2
3
4
5
# 构建
gradle build

# 运行
java -jar build\libs\hello.jar

会报错:

1
hello.jar中没有主清单属性

编辑build.gradle.kts文件,追加:

1
2
3
4
5
6
7
8
9
// 添加这个配置来创建可执行的 jar
tasks.jar {
manifest {
attributes["Main-Class"] = "MainKt"
}
// 这行会将所有依赖(包括 Kotlin 运行时)打包进 jar
from(configurations.runtimeClasspath.get().map { if (it.isDirectory) it else zipTree(it) })
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
}