1. 概要

このチュートリアルでは、Kotlinクラスをコンパイルする方法を紹介します。 その後、コマンドラインからクラスを実行する方法を示します。 最後に、メインクラス名を操作する方法を示します。

2. クラスのコンパイル

クラスのコンパイルと実行を示すために、最初に単純なクラスを定義しましょう。

package com.baeldung.run

class RunClass {
    fun printInsideClass() {
        println("Running inside the RunClass")
    }
}

fun main(args: Array<String>) {
    println("Running the main function")
    RunClass().printInsideClass()
}

それはで構成されています主要関数は、実行時のエントリポイントです。 RunClass。 クラスを実行するには、main関数が必須です。args引数はオプションです。 さらに、関数 printInsideClass が含まれており、同様に起動されることを示します。

それをコンパイルしましょう。 コンパイルには、kotlincコマンドを使用します。 まず、依存関係を使用してコンパイルできます。

$ kotlinc RunClass.kt -include-runtime -d example.jar

実行可能なJARexample.jar を生成します。これには、Kotlinの実行時の依存関係が含まれています。

さらに、-include-runtimeオプションなしで同じコマンドを実行できます。 ランタイムなしでライブラリJARを生成します。 実行する場合は、クラスパスにランタイムを追加する必要があります。

最後に、クラス自体をコンパイルするだけです。

$ kotlinc RunClass.kt

2つのクラスを生成します。 RunClass.class RunClassKt.class。 

3. コマンドラインからクラスを実行する

それでは、クラスを実行してみましょう。 JARにKotlinのランタイムが含まれている場合は、を使用して簡単に実行できます。

$ java -jar example.jar
Running the main function
Running inside the RunClass

ご覧のとおり、両方のステートメントがコンソールに出力されます。

ここで、Kotlinの依存関係を含まないJARを実行してみましょう

$ java -cp "kotlin-stdlib.jar;example.jar" com.baeldung.run.RunClassKt
Running the main function
Running inside the RunClass

まず、kotlin-stdlib.jarがクラスパスにあります。 Kotlinのすべての依存関係を提供します。 この演習では、ランタイムを次のディレクトリと同じディレクトリに配置します。 example.jar。 デフォルトでは、 lib Kotlinコンパイラ内のディレクトリ。

さらに、example.jarにはクラスが含まれています。 最後に提供されたパラメーターはクラス名です。

次に、JARにアーカイブされていないクラスを実行してみましょう。 上記のコンパイルにより、2つのクラスが生成されました。 ‘ Kt’ で終わるものには、main関数が含まれています。

RunClassKtクラスを実行してみましょう。

$ java -cp ".;kotlin-stdlib.jar" com.baeldung.run.RunClassKt
Running the main function
Running inside the RunClass

RunClassをコンパイルしたディレクトリをクラスパスに追加しました。 さらに、前のケースと同じように、Kotlinのランタイムを追加しました。 最後に、最後のパラメーターとしてクラス名があります。

4. メインクラスの名前を変更する

次に、実行可能なクラスの名前を操作する方法を見てみましょう。 まず、メイン関数をコンパニオンオブジェクト内に配置できます。

class RunClass {

    companion object {
        @JvmStatic
        fun main(args: Array<String>) {
            println("Running main function")
        }
    }
}

kotlinc RunClass.ktでコンパイルした後、 RunClass名を使用してクラスを実行できます。

$ java -cp ".;kotlin-stdlib.jar" com.baeldung.run.RunClass
Running main function

その後、JvmNameアノテーションを使用してクラス名を設定しましょう。 値は、バイトコードで生成されるクラス名を示します。

@file:JvmName("CustomName")
package com.baeldung.run

class RunClass {
    fun printInsideClass() {
        println("Running inside the RunClass")
    }
}

fun main(args: Array<String>) {
    println("Running the main function")
    RunClass().printInsideClass()
}

kotlinc RunClass.kt を使用してクラスをコンパイルし、実行してみましょう。

$ java -cp ".;kotlin-stdlib.jar" com.baeldung.run.CustomName
Running the main function
Running inside the RunClass

つまり、CustomNameクラスを実行できました。

5. 結論

この短い記事では、コマンドラインからKotlinクラスをコンパイルして実行する方法を示しました。 さらに、クラス名を変更する方法を紹介しました。

いつものように、例のソースコードはGitHubから入手できます。