コマンドラインからKotlinクラスを実行する
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()
}
それはで構成されています主要関数は、実行時のエントリポイントです。
それをコンパイルしましょう。 コンパイルには、kotlincコマンドを使用します。 まず、依存関係を使用してコンパイルできます。
$ kotlinc RunClass.kt -include-runtime -d example.jar
実行可能なJARexample.jar を生成します。これには、Kotlinの実行時の依存関係が含まれています。
さらに、-include-runtimeオプションなしで同じコマンドを実行できます。 ランタイムなしでライブラリJARを生成します。 実行する場合は、クラスパスにランタイムを追加する必要があります。
最後に、クラス自体をコンパイルするだけです。
$ kotlinc RunClass.kt
2つのクラスを生成します。 RunClass.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にはクラスが含まれています。 最後に提供されたパラメーターはクラス名です。
次に、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でから入手できます。