ことさら−古都プログラマーの更級日記

京都でお寺を回りながら御朱印集めをしていたり、LoLをしたり試合を見に行ったりしているエンジニアのブログです。技術的なはなしとか日常的なはなし、カメラやLoLや競馬の話も書きます。右メニューに検索やらカテゴリーやらがあるので、見たい記事だけ見てね!

KotlinをインストールしてHello Worldする

f:id:yoshiki_utakata:20180125113427j:plain

Kotlinとは

JVMJava仮想マシン)上で動くプログラミング言語です。

IntelliJなんかを開発しているJetBrains社で開発された言語です。

要するにJavaっぽい言語で、IntelliJで対応している言語、それがKotlinです。

Kotlinのインストール

Kotlinのコンパイラとかをインストールする必要があります。

github.com

上記Kotlinのリポジトリのreleases (https://github.com/JetBrains/kotlin/releases)に飛び、kotlin-compiler をダウンロードします。 記事執筆時のバージョンは 1.2.21 でした。

  1. ダウンロードして
  2. 解凍して
  3. PATHを通します

以下Macのターミナル(zsh)でやった時の手順ですが、他のOSでも基本的な手順は変わらないはずです。

# 解凍
$ ls kotlin-compiler-1.2.21.zip
kotlin-compiler-1.2.21.zip

$ unzip kotlin-compiler-1.2.21.zip
Archive:  kotlin-compiler-1.2.21.zip

# 中身を確認
$ ls kotlinc/bin/
kotlin*            kotlin-dce-js*     kotlin-dce-js.bat  kotlin.bat         kotlinc*           kotlinc-js*        kotlinc-js.bat     kotlinc-jvm*       kotlinc-jvm.bat    kotlinc.bat

# 適当な場所に移動
$ mv kotlinc /usr/local/

$ ls /usr/local/kotlinc/bin
kotlin*            kotlin-dce-js*     kotlin-dce-js.bat  kotlin.bat         kotlinc*           kotlinc-js*        kotlinc-js.bat     kotlinc-jvm*       kotlinc-jvm.bat    kotlinc.bat

# PATHを通します
$ emacs ~/.zshrc
# ~/.zshrc に以下を追記
# export PATH=$PATH:/usr/local/kotlinc/bin

# zshrcを読み込み直して
$ source ~/.zshrc

# 動作確認
$ kotlinc -version
info: kotlinc-jvm 1.2.21 (JRE 1.8.0_60-b27)

こんな感じで kotlinc コマンドが動くようになったかと思います。

Emacsにkotlin-modeをインストール

僕は el-get を使っているので、以下を追記すれば kotlin-mode が使えるようになります。

(el-get-bundle kotlin-mode)

中身はこれのようです。

github.com

el-get を使っていなくても kotlin-mode は簡単にインストールできるはず。

今回はkotlin-modeの詳しい説明はカスタマイズは説明しません。とりあえず入れます。機会があればまた導入とか細かい設定とかで記事を書きます。

KotlinでHello World

とりあえずHello Worldしてみます。適当にhello.ktを作成。Kotlinの拡張子は .kt らしいです。

$ cat hello.kt
fun main(args : Array<String>) {
        println("Hello World")
}

kotlinc コマンドで jar 形式にコンパイルして実行するのが楽かと思います。

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

$ ls
hello.jar  hello.kt

javaコマンドで実行できます。

$ java -jar hello.jar
Hello World

Hello World が動きました。

参考