最近、恋するエディタとして知ったSublime Textと、
Java仮想マシン上で動作する Kotlin というの知り。
なら、Sublime Text で Kotlin をコンパイル→実行出来たら便利だよな?
それじゃ、定番の Hello World でも。とやってみました。
前提条件
対象:Windows
Java 導入済み
Sublime Text 3 導入済み
Kotlin コンパイラの導入
※ 導入済みの方は、無視して次へ進んで下さい。
GitHub - JetBrains/Kotlin に kotlin-compiler-バージョン.zip がありますので、ダウンロードします。
(これを書いてる時点で、バージョンは0.8.11)
ダウンロードしたzipファイルを、ここでは、Cドライブのルートに解凍します。
(解凍すると、kotlincフォルダがあり、その先に複数のフォルダとファイルがあります)
コンパイルに kotlinc\bin\kotlinc-jvm.bat を使用します。
環境変数 PATH に追加する必要はありません。
説明における便宜上、Cドライブのルートとしましたが。どこでも構わないみたいです。
Sublime Text のビルドシステムに追加する
Sublime Text を起動し、メニュー「Tools」→「Build System」→「New Build System・・・」をクリックします。
すると、新規で untitled.sublime-build が開きますので、以下のコードを入力します。
{
"shell_cmd": "C:\\kotlinc\\bin\\kotlinc-jvm.bat $file -jar $file_path\\\\$file_base_name.jar",
"file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
"working_dir": "$file_path",
"selector": "source.Kotlin",
"windows":{
// [Decode error - output not utf-8] ←への対処
"encoding": "cp932",
},
"variants": [
{
"name":"Run",
"shell_cmd": "java -classpath $file_path\\\\$file_base_name.jar;C:\\kotlinc\\lib\\kotlin-runtime.jar _DefaultPackage"
}
]
}
出力に日本語を使用してると、コンパイル時に [Decode error - output not utf-8] と表示される事があります。
そこで、encodingを指定し、エンコードしてやります。
これを Kotlin.sublime-build というファイル名で保存します。
※ 保存場所は ~\package\user の下で構いません。
メニュー「Tools」→「Build System」に Kotlin が追加されてるので、これをクリックします(チェックが付きます)。
(もし、無ければ。Sublime Text を再起動してみて下さい)
ファイルに保存されたKotlinソース(.kt)なら、Automaticでも構いません。
selectorに設定する形式ですが、[ALT]+[SHIFT]+[CTRL]+P にて、ステータスバーに表示されます。
Hello World を作成 → コンパイル → 実行まで
早速 Kotlin で Hello World を作成し、コンパイル→実行してみましょう。
新規にファイルを作成( [CTRL]+N )し、
fun main(args : Array<String>) {
println("Hello World!")
}
これを適当なファイル名(ex:kotlinHelloWorld.kt)で保存します。
では、コンパイルしてみましょう。
・メニュー「Tools」→「Build」( [CTRL]+B )
(正常にコンパイルが終わると、ファイルを保存したフォルダに ~.jar が作成されます)
コンパイルが終われば、実行してみましょう
・メニュー「Tools」→「Run」( [SHIFT]+[CTRL]+B )
ビルド結果に Hello World! と表示されたら完了です(お疲れ様でした)。
参考
Project Kotlin - Working with the Command Line Compiler
あとがき ...みたいなもの
初めて投稿してみましたが。分かり易く+簡潔に書くって難しいですね。
もっとフランクに書いても良かったのかなー。
ネットで見る限りでは、Macで使ってる方が多い印象ですね。
「それが知りたい」→Macでは~。Windowsでは、どーすんだ?
が結構あった気がします。
最後に。他にも、もっと良い方法は色々とあるかと思います。
その一案として見て頂ければなぁ、、、と。