22
15

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

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

Posted at

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

過去に試した記事

今日は利用している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の話)

22
15
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
22
15

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?