15
25

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.

KotlinをVS Codeでやってみようと思ったらKotlinの実行時にハマった

Posted at

動機

 巷で騒ぎ始めているプログラミング言語「Kotlin」(2017年5月現在)が気になり、ちょっと動かしてみようと思ったのがきっかけです。
 でもそのためにわざわざ「InteliiJ(https://www.jetbrains.com/idea/) 」とか入れたくないのが正直な気持ち。そこで、すでに環境として構築済みである「Visual Studio Code」上で気軽にできたらいいかなと思って、いろいろ試してみた。

結論

  • Java開発について知見が深ければおそらくハマらなかったかもしれない。
  • Kotlinコンパイル時に指定するオプション引数は大事だってことが改めてわかった。

実際にやってみる

手元環境

Kotlin関係の準備

Visual Studio Codeの機能拡張をインストール

機能拡張タブを押して、検索窓でkotlin languageと入力して検索し、「Kotlin Language」をインストールする
機能拡張インストール.png

Kotlin環境を構築

homebrewを使う。

$ brew install kotlin

これだけ。インストール完了後、kotlinkotlinckotlinc-jskotlinc-jvmが使えるようになる。

チュートリアルっぽく「Hello, Kotlin」をやってみる

kotlinのコーディング

適当なディレクトリ上でCodeを起動し、hello.ktファイルを作成する。

hello.kt
fun main(args:Array<String>){
    println("Hello, Kotlin")
}

kotlinコードをコンパイルする

kotlinのインストール後に出てきたコマンド名から察するにkotlincがコンパイラじゃね?と思ってそれを実行する。

$ kotlinc hello.kt

実行後にHelloKt.classなるファイルができる。

kotlinを実行する

これもコマンドから察するにkotlinコマンドに先ほど生成されたファイルを入力として与えれば実行できるんじゃね?と思い立ち、それを実行する。

$ kotlin HelloKt.class
error: could not find or load main class HelloKt.class

あれ、動かねー。

ググってみる

なんかInteliiJとかJetBeansあたりを前提とした記事しか出てこない。

コマンドラインのみでKotlinやってそうなサイトを探してみる

公式のチュートリアルで「コマンドラインで実行する」手順があった。
https://kotlinlang.org/docs/tutorials/command-line.html

結局のところkotlincのオプション指定が問題だったことがわかった。

リトライ

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

今度はhello.jarファイルが生成される。これをkotlinコマンドで実行してみる。

$ kotlin hello.jar
Hello, Kotlin

できたーーー

終わりに

多分Java開発の知見があればハマらなかった問題かも。
あと、本格的に開発やるならばやはりInteliiJあたりの統合環境が必須になりそう。Android開発にKotlinが使えるようになったという話もあるぐらいなので、素直にAndroid Studioを使うべきか……。

15
25
1

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
15
25

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?