第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

Kotlin 命令行編譯

我們一般編寫代碼都會(huì)借助 IDE 工具,因?yàn)檫@樣可以快速提高開發(fā)效率。但是需要去理解一個(gè) Kotlin源文件是如何編譯運(yùn)行的,所以這篇文章將教你如何使用command來(lái)編譯運(yùn)行 Kotlin 源碼。

1. 下載 Kotlin 編譯器

在 Kotlin 每個(gè)版本中都會(huì)附帶一個(gè)獨(dú)立版本的編譯器kotlin-compiler-xxx.zip. 目前 Kotlin 的最新版本是1.3.71. 只要在 Kotlin github 的對(duì)應(yīng)1.3.71版本 tag 中下載即可。

圖片描述

2. 編譯器安裝

2.1 基于kotlin-compiler zip包手動(dòng)安裝

將下載好的 Kotlin 編譯器zip包,解壓縮到一個(gè)目錄中,并把bin所在目錄路徑添加到環(huán)境變量中。bin 目錄包含了在 Windows、OS X 及 Linux 上編譯與運(yùn)行 Kotlin 所需的腳本。

圖片描述

圖片描述
以下是bin目錄中腳本文件,其中.bat是用于Windows平臺(tái)編譯運(yùn)行的腳本。kotlinc是用于編譯 Kotlin 源碼,kotlin是運(yùn)行Kotlin編譯后產(chǎn)物的。

圖片描述

bin所在目錄添加到系統(tǒng)PATH中,這里以Mac為例,Windows平臺(tái)就和普通的環(huán)境變量添加PATH一致。

#kotlin
export PATH=${PATH}:"/Users/imooc/Desktop/imooc/kotlinc/bin" #這個(gè)路徑就是解壓縮目錄的路徑

2.2 基于 SDKMAN! 安裝

在基于 UNIX 的系統(tǒng)(如 OS X、Linux、Cygwin、FreeBSD 和 Solaris, Windows不支持)上安裝 Kotlin 的更簡(jiǎn)單方法是使用 SDKMAN!。 只需在終端中運(yùn)行以下命令并按照說(shuō)明操作即可:

curl -s https://get.sdkman.io | bash

接下來(lái)會(huì)打開一個(gè)新終端并安裝 Kotlin:

sdk install kotlin

2.3 基于 Homebrew 安裝

如果使用的是 OS X操作系統(tǒng),可以通過(guò) Homebrew 安裝編譯器。

brew update
brew install kotlin

2.4 基于 MacPorts 安裝

如果是 MacPorts 用戶,那么可以使用以下命令安裝編譯器:

sudo port install kotlin

2.5 基于 Snap 包安裝

如果使用的是 Ubuntu 16.04 或更高版本,那么可以在命令行直接使用 Snap 安裝編譯器:

sudo snap install --classic kotlin

2.6 基于 Chocolatey 包安裝

如果是Windows 下的 Chocolatey 用戶, 有一個(gè)社區(qū)維護(hù)的軟件包 kotlinc 可供使用, 你可以在命令行通過(guò) choco install 進(jìn)行安裝。

2.7 驗(yàn)證安裝環(huán)境

安裝好 Kotlin 編譯器后,只需要在command中輸入kotlinc, 如果出現(xiàn)下面這樣信息說(shuō)明安裝成功:

圖片描述

3. 創(chuàng)建并運(yùn)行第一個(gè)應(yīng)用程序

3.1 創(chuàng)建kt源碼文件

隨便使用一個(gè)文本編輯器,記事本之類工具,創(chuàng)建一個(gè) hello.kt 的新文件,然后在文件中編寫以下代碼:

fun main(args: Array<String>) {
    println("Hello Kotlin!")
}

圖片描述

3.2 編譯hello.kt源碼文件

command中執(zhí)行以下編譯命令:

kotlinc hello.kt -include-runtime -d hello.jar

## -d 選項(xiàng)表示生成的類文件的輸出路徑,可以是目錄,也可以是一個(gè) .jar 文件。-include-runtime 選項(xiàng)通過(guò)在其中包含 Kotlin 運(yùn)行時(shí)庫(kù),使得生成的 .jar 文件中自包含運(yùn)行時(shí)庫(kù)且可運(yùn)行。 如果要查看所有可用選項(xiàng),請(qǐng)運(yùn)行以下命令:
# kotlinc -help

圖片描述

會(huì)在hello.kt同級(jí)目錄生成一個(gè)應(yīng)用程序hello.jar

3.3 運(yùn)行應(yīng)用程序 hello.jar

command中執(zhí)行以下運(yùn)行命令:

java -jar hello.jar

圖片描述

4. 編譯庫(kù)

如果你正在開發(fā)一個(gè)供其他 Kotlin 應(yīng)用程序使用的庫(kù),那么可以構(gòu)建 .jar 文件,而不將 Kotlin 運(yùn)行時(shí)包含在其中。

kotlinc hello.kt -d hello2.jar

可以通過(guò) jar 查看工具來(lái)看:

圖片描述

相比下面這種運(yùn)行時(shí)方式編譯后的產(chǎn)物是不一樣的,下面包含一個(gè)運(yùn)行時(shí)打包:

kotlinc hello.kt -include-runtime -d hello.jar

可以通過(guò) jar 查看工具來(lái)看:

圖片描述

由于以這種方式編譯的二進(jìn)制文件依賴于 Kotlin 運(yùn)行時(shí),因此無(wú)論何時(shí)使用編譯庫(kù),都應(yīng)確保后者存在于類路徑中。還可以使用 kotlin 腳本來(lái)運(yùn)行 Kotlin 編譯器生成的二進(jìn)制文件:

kotlin -classpath hello.jar HelloKt # HelloKt 是 Kotlin 編譯器為名為 hello.kt 的文件生成的主類名。

圖片描述

5. Kotlin 執(zhí)行的交互式 shell

可以運(yùn)行沒(méi)有參數(shù)的編譯器來(lái)?yè)碛薪换ナ?shell??梢暂斎肴魏斡行У?Kotlin 代碼并查看結(jié)果。

由于之前安裝的時(shí)候配置好了kotlin-compiler,所以我們只需要在command中輸入kotlinc就能進(jìn)入交互式的shell, 退出交互shell,只需要輸入:quit即可。

圖片描述

使用交互式shell,輸出 hello kotlin!

圖片描述

使用交互式 shell,計(jì)算三個(gè)數(shù)之和:

圖片描述

6. 運(yùn)行 Kotlin 腳本

Kotlin 也可以用作腳本語(yǔ)言。腳本是具有頂層可執(zhí)行代碼的 Kotlin 源文件(.kts)。

實(shí)例:

實(shí)現(xiàn)一個(gè)輸出當(dāng)前目錄所有文件的 kotlin 腳本(-dir 后跟目錄):

import java.io.File

val filePath = if(args.contains("-dir")) args[1 + args.indexOf("-d")] else "."

File(filePath).listFiles { file ->
    println(file)
    return@listFiles true
}

要運(yùn)行腳本,我們只需使用相應(yīng)的腳本文件將 -script 選項(xiàng)傳遞給編譯器。

kotlinc -script read_files.kts -- -dir xxx

圖片描述

從 Kolint 1.3.0 開始,Kotlin 對(duì)腳本定制提供了實(shí)驗(yàn)性支持,例如添加外部屬性、提供靜態(tài)或動(dòng)態(tài)依賴關(guān)系等。自定義由所謂的 腳本定義 帶有適當(dāng)支持代碼的帶注釋的 kotlin 類定義。腳本文件擴(kuò)展名用于選擇適當(dāng)?shù)亩x。

當(dāng)適當(dāng)?shù)?jar 文件包含在編譯類路徑中時(shí),會(huì)自動(dòng)檢測(cè)并正確應(yīng)用正確編寫的腳本定義?;蚩梢允褂镁幾g器的 -script-templates 選項(xiàng)來(lái)手動(dòng)定義:

kotlinc -script-templates org.example.CustomScriptDefinition -script custom.script1.kts

7. 小結(jié)

到這里有關(guān) kotlin 命令行編譯就結(jié)束,這篇文章很全面闡述了有關(guān) Kotlin 源碼編譯、運(yùn)行過(guò)程以及 Kotlin 的腳本編寫和運(yùn)行。下一節(jié)將正式進(jìn)入 Kotlin 的語(yǔ)法學(xué)習(xí)。

圖片描述