Posted at

UbuntuにKotlinをインストールしてハローワールドまでやってみた #teratail_kt

More than 1 year has passed since last update.

#teratail_ktのたびにKotlinを触ってみているくらいなのでハローワールドから抜け出せてない今日この頃です。今回は3回目(Kotlin初心者向けハンズオン #3)。


過去に試した記事

- CLIとVSCodeでKotlin開発を始めてみるメモ #teratail_kt

- KotlinをNode.jsに変換してWebサーバーを作るメモ #teratail_kt


今日は利用しているUbuntu(16.04)にKotlinをインストールしてみます。

日本語導入っぽいのは現時点であんまりなので公式のWorking with the Command Line Compilerを参考にします。


OSバージョン

$ cat /etc/lsb-release

DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION="Ubuntu 16.04.2 LTS"


SDKMANのインストール

SDKMANってはじめて知ったんですけどJavaユーザーのためのパッケージマネージャーらしいですね。


JavaユーザーのためのパッケージマネージャーSDKMAN


JVM系言語の人たちには馴染みがある模様。

言語自体のバージョンの切り替えが出来ると思いきや、フレームワークなどのバージョン切り替えも出来る模様なので、Node.jsユーザー的にいうとnvmとnpmの両方の機能があるイメージでしょうか。(認識間違ってたら教えてください)

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



省略

Updated existing /home/n0bisuke/.zshrc

All done!

Please open a new terminal, or run the following in the existing one:

source "/home/n0bisuke/.sdkman/bin/sdkman-init.sh"

Then issue the following command:

sdk help

Enjoy!!!

とりあえずインストール完了です。

パスを通します。

$ source "/home/n0bisuke/.sdkman/bin/sdkman-init.sh"

sdk helpが実行出来ればOKです。

$ sdk help

==== BROADCAST =================================================================
* 13/04/18: Gradle 4.7-rc-2 released on SDKMAN! #gradle
* 10/04/18: Springboot 1.5.12.RELEASE released on SDKMAN! #springboot
* 09/04/18: sbt 1.1.4 released on SDKMAN! #scala
================================================================================

Usage: sdk <command> [candidate] [version]
sdk offline <enable|disable>

commands:
install or i <candidate> [version]
uninstall or rm <candidate> <version>
list or ls [candidate]
use or u <candidate> [version]
default or d <candidate> [version]
current or c [candidate]
upgrade or ug [candidate]
version or v
broadcast or b
help or h
offline [enable|disable]
selfupdate [force]
update
flush <candidates|broadcast|archives|temp>

candidate : the SDK to install: groovy, scala, grails, gradle, kotlin, etc.
use list command for comprehensive list of candidates
eg: $ sdk list

version : where optional, defaults to latest stable if not provided
eg: $ sdk install groovy


ちなみにzip入ってないって怒られました

Looking for zip...

Not found.
======================================================================================================
Please install zip on your system using your favourite package manager.

Restart after installing zip.
======================================================================================================

Ubuntuはapt-getで入れます。

$ sudo apt-get install zip


SDKMAN経由でKotlinとJavaをインストール

Kotlinのインストールをします。

$ sdk install kotlin

javaのインストールをします。

$ sdk install java

それぞれバージョン確認

$ kotlin -version

Kotlin version 1.2.31-release-95 (JRE 1.8.0_163-b01)

$java -version

openjdk version "1.8.0_163"
OpenJDK Runtime Environment (Zulu 8.28.0.1-linux64) (build 1.8.0_163-b01)
OpenJDK 64-Bit Server VM (Zulu 8.28.0.1-linux64) (build 25.163-b01, mixed mode)


ハローワールド

hello.ktを作成します。


hello.kt

fun main(args: Array<String>) {

println("Hello, World!")
}

$ ls

hello.kt

kotlincコマンドでコンパイルします。

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

Goとかの感覚からすると少し時間かかる印象です。

hello.jarが作成されます。

$ ls

hello.jar hello.kt

kotlinコマンドでjarファイルを実行します。(さっきのkotlincコマンドとkotlinコマンドは別なので注意)

$ kotlin hello.jar

Hello, World!

お疲れ様でした。


感想など

特に問題なくできた印象。SDKMANの存在を知れたのが収穫かも。

kotlincコマンドのコンパイル時間が気になるのでプログレス表示とか出来る方法があると嬉しいなと思った。 (IDEは使わずにCLIの話)