瘋狂Kotlin講義連載之 命令行編譯、運行Kotlin

今天介紹使用命令行環境編譯、運行 Kotlin ,與其餘編程語言相似, Kotlin 一樣須要下載並安裝對應的 SDK ,接下來便可使用該 SDK 提供的命令來編譯、運行 Kotlin 程序。

下載、配置Kotlin的SDK

下載和安裝 Kotlin SDK 請按以下步驟進行。

1)登https://github.com/JetBrains/kotlin/releases,看到Kotlin SDK的最新發布本,便可看到如圖html

1.1 所示頁面。本書成書之時, Kotlin SDK 的最新版本是 1.1.4-2 ,本書全部的案例也是基於該版本 SDK 的。


圖1.1下載Kotlin SDK的頁面java

2 )單擊如圖 1.1 所示頁面的連接,便可下載獲得一個 kotlin-compiler-1.1.4-2.zip壓縮包文件。

3 )將上面壓縮文件解壓到任意目錄下,便可看到以下文件路徑。


 bin:該路徑下存放了Kotlin SDK的各類工具命令,經常使用的kolinckotlin等命令就放在該路徑下。git

 lib:該目錄下包含了Kotlin的各類工具JAR包。程序員

 licenseKotlin項目相關的各類受權文檔。github

在上面路徑中, bin 路徑是一個很是有用的路徑,這個路徑下包含了編譯和運行 Kotlin 程序的 kotlinc kotlin 兩個命令。除此以外,還包含了 kotlinc-jvm kotlinc-js 等工具命令。其中 kolinc
kotlinc-jvm 是同樣的,都用於將 Kotlin 程序編譯成適用於 JVM 的字節碼文件,而 kotlin-js 則用於將 Kotlin 程序編譯成 JavaScript 代碼。

4 )將解壓路徑下的 bin 目錄添加到系統的 PATH 環境變量中,這樣便可保證操做系統能經過 PATH 環境變量找到 kotlinc kotlin等工具命令。

5 )將解壓路徑下 lib 子目錄中 kotlin-stdlib.jar文件(該文件與kotlin-runtime.jar 文件相同,都表明了 Kotlin 的運行時環境庫)添加到 CLASSPATH 環境變量中,這樣便可保證運行 Kotlin 程序時能正常加載 Kotlin 的運行時環境庫。

提示:本書假設讀者已有最基本的 Java 編程基礎,所以本書不會逐步介紹環境變量配置這些基礎內容,若是讀者須要學習環境變量配置這些基礎知識,建議參考《 瘋狂Java講義 》一書。

第一個Kotlin程序

編輯 Kotlin
源代碼可使用任何無格式的文本編輯器,在 Windows 上可以使用記事本( NotePad )、 EditPlus 等程序,在 Linux 平臺上可以使用 VI 工具等。

提示:編寫 Kotlin 程序不要使用寫字板,更不可以使用 Word 等文檔編輯器。由於寫字板、 Word 等工具是有格式的編輯器,當使用它們編輯一份文檔時,這個文檔中會包含一些隱藏的格式化字符,這些隱藏字符會致使程序沒法正常編譯、運行。

在記事本中新建一個文本文件,並在該文件中輸入以下代碼:編程

程序清單:
codes\01\1.2\helloWorld.kt

fun main(args: Array<String>) {數組

println("Hello, World!")jvm

}編程語言

編輯上面的Kotlin文件時,注意程序中粗體字標識的單詞,Kotlin程序嚴格區分大小寫。將上面文本文件保存爲helloWorld.kt,該文件就是Kotlin程序的源程序,Kotlin源程序的文件名要求以.kt結尾。編輯器

Kotlin程序與Java程序不一樣,Kotlin支持函數式編程,所以Kotlin程序的程序入口只要一個main()函數做爲入口,不須要將該main()函數放在任何類中。

提示:仔細看下上面的 main()函數,不難發現這個main 函數其實就是 Java 主類中的 main()方法的變體。只不過在Kotlin 語言中,函數也是一等公民,所以函數能夠獨立存在,而 Java 主類中 main() 方法必須放在類中聲明。 Java 主類的 main ()方法須要聲明一個String[] args 形參,而 Kotlin
mian()函數一樣聲明瞭args: Array<String> 形參 ——它們都是一個字符串數組類型的形參,這代表它們的本質是同樣的,只是形式不一樣而已。至於 Kotlin 主函數前面的 fun 關鍵字,它專門用於聲明函數; Swift 語言還使用 func 關鍵字聲明函數呢,其實沒有什麼特別的,習慣不一樣而已。

編寫好Kotlin程序的源代碼後,接下來就應該編譯該Kotlin源文件來生成字節碼了。

編譯、運行Kotlin程序

編譯 Kotlin 程序須要使用 kotlinc kotlinc-jvm 命令(兩個命令徹底同樣),由於前面已經把 kotlinc
命令所在的路徑添加到了系統的 PATH 環境變量中,所以如今可使用 kotlinc 命令來編譯 Kotlin 程序了。

對於初學者而言,先掌握 kotlinc 命令的以下用法:

kotlinc -d destdir srcFile

在上面命令中, -d destdir kotlinc 命令的選項,用以指定編譯生成的字節碼文件的存放路徑, destdir 只需是本地磁盤上的一個有效路徑便可;而 srcFile Kotlinc 源文件所在的位置,這個位置既能夠是絕對路徑,也能夠是相對路徑。

一般,老是將生成的字節碼文件放在當前路徑下,當前路徑能夠用一點( . )來表示。在命令行窗口進入 helloWorld. kt文件所在路徑,在該路徑下輸入以下命令:

kotlinc -d . helloWorld.kt

運行該命令後,在該路徑下生成一個 HelloWorldKt.class 文件。

javac 編譯器相似,使用 kotlinc編譯文件只須要指定存放目標文件的位置便可,無須指定字節碼文件的文件名。由於kotlinc 編譯後生成的字節碼文件有默認的文件名:若是 Kotlin 源程序中包含一個或多個函數, kotlinc 會額外生成一個生成文件,該生成文件的文件名是文件名首字母大寫並添加 Kt 後綴,並以 .class 做爲後綴名;若是 Kotlin 源程序中包含一個或多個類, kotlinc 則會爲每一個類生成一個字節碼文件,文件名以源文件所定義的各個類的類名做爲主文件名的,以 .class 做爲後綴名。

事實上,指定目標文件存放位置的 -d 選項也是可省略的,若是省略該選項,則意味着將生成的字節碼文件放在當前路徑下。

可能有讀者會感受:這不就是《瘋狂 Java 講義》所介紹的內容嗎? kotlinc 的用法與 javac 的用法何其類似啊?實際上這也是 Kotlin 設計者但願實現的效果: Java 是一門如此深刻人心、影響深遠的語言,擁有普遍的程序員基礎,而 Kotlin 不只藉助於 JVM 做爲運行平臺,並且保持和 Java 詳細的編譯、運行方式,這樣 Kotlin 也更容易被廣大程序員所接受。

運行 Kotlin 程序可以使用 kotlin java 命令(你沒看錯,能夠用 java 命令),啓動命令行窗口,進入
HelloWorldKt.class 所在的位置,在命令行輸入以下命令。

java HelloWorldKt

運行上面命令,將看到以下輸出:

Hello World!

這代表 Kotlin 程序運行成功

固然了, Kotlin 也專門提供了一個 kotlinm 命令來運行 Kotlin 程序,所以在命令行輸入以下命令。

kotlin HelloWorldKt

運行上面命令,一樣可看到以下輸出:

Hello World!

以上內容節選自《瘋狂Kotlin講義》:一本讓您最直接認識Kotlin的瘋狂講義



本書即將於2017年11月發售 敬請期待

往期連載:juejin.im/post/59c0b7…


相關書籍 瘋狂Android講義
相關文章
相關標籤/搜索