Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
14
Help us understand the problem. What is going on with this article?
@n0bisuke

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

More than 3 years have 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の話)

14
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
n0bisuke
プロトタイピング専門スクール「プロトアウトスタジオ」で教えたりしてます。 プロフ -> https://dotstud.io/members/n0bisuke
dotstudio
全ての人がモノづくりを楽しむ世界を目指して活動しています。 ( https://dotstud.io ) プロトタイピングスクールの運営をしています。

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
14
Help us understand the problem. What is going on with this article?