開始使用 Kotlin/Native
在本教學中,您將學習如何建立 Kotlin/Native 應用程式。選擇最適合您的工具,並使用以下方式建立您的應用程式:
-
IDE。在這裡,您可以從版本控制系統複製專案範本,並在 IntelliJ IDEA 中使用它。
-
Gradle 建置系統。為了更好地理解底層的工作原理,請手動為您的專案建立建置檔案。
-
命令列工具。您可以使用 Kotlin/Native 編譯器,它是標準 Kotlin 發行版的一部分,並直接在命令列工具中建立應用程式。
主控台編譯可能看起來簡單直接,但它無法很好地擴展到具有數百個檔案和函式庫的大型專案。對於此類專案,我們建議使用 IDE 或建置系統。
使用 Kotlin/Native,您可以為 不同的目標 進行編譯,包括 Linux、macOS 和 Windows。雖然可以進行跨平台編譯,這意味著使用一個平台來編譯另一個平台,但在本教學中,您將以您正在編譯的同一平台為目標。
如果您使用 Mac 並想要為 macOS 或其他 Apple 目標建立和執行應用程式,您還需要先安裝 Xcode Command Line Tools,啟動它,並接受授權條款。
在 IDE 中
在本節中,您將學習如何使用 IntelliJ IDEA 建立 Kotlin/Native 應用程式。您可以使用 Community Edition 和 Ultimate Edition。
建立專案
-
下載並安裝最新版本的 IntelliJ IDEA。
-
透過在 IntelliJ IDEA 中選擇 File | New | Project from Version Control 並使用以下 URL,來複製 專案範本:
https://github.com/Kotlin/kmp-native-wizard
-
開啟
gradle/libs.versions.toml
檔案,這是專案依賴項的版本目錄。要建立 Kotlin/Native 應用程式,您需要 Kotlin Multiplatform Gradle 插件,它的版本與 Kotlin 相同。確保您使用最新的 Kotlin 版本:[versions]
kotlin = "2.1.20" -
按照建議重新載入 Gradle 檔案:
有關這些設定的更多資訊,請參閱 Multiplatform Gradle DSL reference。
建置並執行應用程式
開啟 src/nativeMain/kotlin/
目錄中的 Main.kt
檔案:
src
目錄包含 Kotlin 原始碼檔案。Main.kt
檔案包含使用println()
函式列印 "Hello, Kotlin/Native!" 的程式碼。
按下裝訂線中的綠色圖示以執行程式碼:

IntelliJ IDEA 使用 Gradle 任務執行程式碼,並在 Run 標籤中輸出結果:

首次執行後,IDE 會在頂部建立相應的執行配置:

IntelliJ IDEA Ultimate 使用者可以安裝 Native Debugging Support 插件,該插件允許除錯編譯後的原生可執行檔,並自動為匯入的 Kotlin/Native 專案建立執行配置。
您可以 配置 IntelliJ IDEA 以自動建置您的專案:
- 前往 Settings | Build, Execution, Deployment | Compiler。
- 在 Compiler 頁面上,選取 Build project automatically。
- 應用變更。
現在,當您在類別檔案中進行變更或儲存檔案 (
更新應用程式
讓我們在您的應用程式中新增一個功能,以便它可以計算您姓名中的字母數量:
-
在
Main.kt
檔案中,新增程式碼以讀取輸入。使用readln()
函式讀取輸入值並將其分配給name
變數:fun main() {
// Read the input value.
println("Hello, enter your name:")
val name = readln()
} -
要使用 Gradle 執行此應用程式,請指定
System.in
作為要在build.gradle.kts
檔案中使用的輸入,並載入 Gradle 變更:kotlin {
//...
nativeTarget.apply {
binaries {
executable {
entryPoint = "main"
runTask?.standardInput = System.`in`
}
}
}
//...
} -
消除空格並計算字母:
- 使用
replace()
函式來移除名稱中的空格。 - 使用範圍函式
let
在物件上下文中執行函式。 - 使用 字串模板 透過新增一個貨幣符號
$
並將其括在花括號中 –${it.length}
來將您的姓名長度插入字串中。it
是 lambda 參數 的預設名稱。
fun main() {
// Read the input value.
println("Hello, enter your name:")
val name = readln()
// Count the letters in the name.
name.replace(" ", "").let {
println("Your name contains ${it.length} letters")
}
} - 使用
-
執行應用程式。
-
輸入您的姓名並享受結果:
現在讓我們只計算您姓名中唯一的字母:
-
在
Main.kt
檔案中,為String
宣告新的 擴展函式.countDistinctCharacters()
:- 使用
.lowercase()
函式將名稱轉換為小寫。 - 使用
toList()
函式將輸入字串轉換為字元清單。 - 使用
distinct()
函式僅選取您姓名中不同的字元。 - 使用
count()
函式計算不同的字元。
fun String.countDistinctCharacters() = lowercase().toList().distinct().count()
- 使用
-
使用
.countDistinctCharacters()
函式計算您姓名中唯一的字母:fun String.countDistinctCharacters() = lowercase().toList().distinct().count()
fun main() {
// Read the input value.
println("Hello, enter your name:")
val name = readln()
// Count the letters in the name.
name.replace(" ", "").let {
println("Your name contains ${it.length} letters")
// Print the number of unique letters.
println("Your name contains ${it.countDistinctCharacters()} unique letters")
}
} -
執行應用程式。
-
輸入您的姓名並查看結果:
使用 Gradle
在本節中,您將學習如何使用 Gradle 手動建立 Kotlin/Native 應用程式。它是 Kotlin/Native 和 Kotlin Multiplatform 專案的預設建置系統,也常在 Java、Android 和其他生態系統中使用。
建立專案檔案
-
首先,安裝相容版本的 Gradle。請參閱 相容性表格 以檢查 Kotlin Gradle 插件 (KGP) 與可用 Gradle 版本的相容性。
-
建立一個空的專案目錄。在其中,建立一個包含以下內容的
build.gradle(.kts)
檔案:- Kotlin
- Groovy
// build.gradle.kts
plugins {
kotlin("multiplatform") version "2.1.20"
}
repositories {
mavenCentral()
}
kotlin {
macosArm64("native") { // on macOS
// linuxArm64("native") // on Linux
// mingwX64("native") // on Windows
binaries {
executable()
}
}
}
tasks.withType<Wrapper> {
gradleVersion = "8.10"
distributionType = Wrapper.DistributionType.BIN
}// build.gradle
plugins {
id 'org.jetbrains.kotlin.multiplatform' version '2.1.20'
}
repositories {
mavenCentral()
}
kotlin {
macosArm64('native') { // on macOS
// linuxArm64('native') // on Linux
// mingwX64('native') // on Windows
binaries {
executable()
}
}
}
wrapper {
gradleVersion = '8.10'
distributionType = 'BIN'
}您可以使用不同的 目標名稱,例如
macosArm64
、iosArm64
linuxArm64
和mingwX64
來定義您要編譯程式碼的目標。這些目標名稱可以選擇性地將平台名稱作為參數,在本例中為native
。平台名稱用於在專案中產生原始碼路徑和任務名稱。 -
在專案目錄中建立一個空的
settings.gradle(.kts)
檔案。 -
建立
src/nativeMain/kotlin
目錄,並在其中放置一個包含以下內容的hello.kt
檔案:fun main() {
println("Hello, Kotlin/Native!")
}
按照慣例,所有原始碼都位於 src/<target name>[Main|Test]/kotlin
目錄中,其中 Main
用於原始碼,Test
用於測試。 <target name>
對應於建置檔案中指定的目標平台(在本例中為 native
)。
建置並執行專案
-
從根專案目錄中,執行建置命令:
./gradlew nativeBinaries
此命令會建立
build/bin/native
目錄,其中包含兩個目錄:debugExecutable
和releaseExecutable
。它們包含相應的二進位檔案。預設情況下,二進位檔案的名稱與專案目錄相同。
-
要執行專案,請執行以下命令:
build/bin/native/debugExecutable/<project_name>.kexe
終端機會列印 "Hello, Kotlin/Native!"。
在 IDE 中開啟專案
現在,您可以在任何支援 Gradle 的 IDE 中開啟您的專案。如果您使用 IntelliJ IDEA:
- 選擇 File | Open。
- 選取專案目錄並點擊 Open。 IntelliJ IDEA 會自動偵測它是否為 Kotlin/Native 專案。
如果您在專案中遇到問題,IntelliJ IDEA 會在 Build 標籤中顯示錯誤訊息。
使用命令列編譯器
在本節中,您將學習如何使用命令列工具中的 Kotlin 編譯器建立 Kotlin/Native 應用程式。
下載並安裝編譯器
要安裝編譯器:
-
前往 Kotlin 的 GitHub releases 頁面。
-
尋找名稱中包含
kotlin-native
的檔案,然後下載適合您作業系統的檔案,例如kotlin-native-prebuilt-linux-x86_64-2.0.21.tar.gz
。 -
將封存檔解壓縮到您選擇的目錄。
-
開啟您的 shell 設定檔,並將編譯器的
/bin
目錄的路徑新增至PATH
環境變數:export PATH="/<path to the compiler>/kotlin-native/bin:$PATH"
雖然編譯器輸出沒有依賴項或虛擬機器要求,但編譯器本身需要 Java 1.8 或更高版本的執行階段。它受到 JDK 8 (JAVA SE 8) 或更高版本 的支援。
建立程式
選擇一個工作目錄並建立一個名為 hello.kt
的檔案。使用以下程式碼更新它:
fun main() {
println("Hello, Kotlin/Native!")
}
從主控台編譯程式碼
要編譯應用程式,請使用下載的編譯器執行以下命令:
kotlinc-native hello.kt -o hello
-o
選項的值指定輸出檔案的名稱,因此此呼叫會在 macOS 和 Linux 上產生 hello.kexe
二進位檔案(在 Windows 上產生 hello.exe
)。
有關可用選項的完整清單,請參閱 Kotlin compiler options。
執行程式
要執行程式,請在您的命令列工具中,導航到包含二進位檔案的目錄並執行以下命令:
- macOS and Linux
- Windows
./hello.kexe
./hello.exe
應用程式會將 "Hello, Kotlin/Native" 列印到標準輸出。
接下來呢?
- 完成 Create an app using C Interop and libcurl 教學,其中說明瞭如何建立原生 HTTP 用戶端並與 C 函式庫交互操作。
- 學習如何 write Gradle build scripts for real-life Kotlin/Native projects。
- 在 文件中 閱讀有關 Gradle 建置系統的更多資訊。