web-dev-qa-db-ja.com

Kotlin-IntelliJプロジェクトのセットアップ

IntelliJ IDEを使用してJVMのKotlinで新しいプロジェクトを開始したいのですが、動作するように構成を取得できません。私は このチュートリアル を実行しようとしていましたが、その後は機能しませんでした(「Run '_DefaultPackage'」オプションが表示されることもありませんでした)。 。これまでに起こったこと(繰り返し):

  • プロジェクトタイプとして「Kotlin-JVM」を選択して、新しいプロジェクトを作成しました。
  • 2番目のページでKotlin Runtimeの[作成...]ボタンをクリックし、[コピー先:lib]を選択しました。
  • [完了]をクリックすると、作成されたプロジェクトに、プロジェクトと同じ名前のモジュールが1つあります。デフォルトのソースファイルや設定はありません。
  • 「app.kt」という名前のKotlinファイルを作成し(「Main.kt」など他の名前も試しました)、次のソースコードを挿入します。
fun main(args: Array<String>){
    println("Hello world!")
}
  • コードエディターと左ペインのファイルを右クリックして、チュートリアルで説明した「Run '_DefaultPackage'」オプションを見つけましたが、どちらでも見つかりませんでした。
  • 新しいKotlin構成を作成しますが、これは「メインクラス」に入れるように要求します。これを見て、コードを次のように変更します。
public class Main {
    fun main(args: Array<String>) {
        println("Hello world!")
    }
}
  • 構成を編集し、メインクラスを「メイン」に設定してから、構成を実行します。次のエラーで失敗します:「実行中のエラー:関数 'main'がクラス 'Main'に見つかりません。

私は何が欠けていますか?

22

Mainメソッドが静的ではないため、プロジェクトを組み立てることはできません。したがって、コンパニオンオブジェクトで定義する必要があります。

class HelloKotlin {

        companion object {
            @JvmStatic fun main(args: Array<String>) {
                println("Kotlin main is running here!")
            }
        }
    }
40
Slava Sotone

最上位のmain()関数の実行可能クラスを識別する方法、またはクラス内でmain()メソッドを使用する方法の完全な回答は、この他のStack Overflowの回答に記載されています。 Kotlinクラスの実行方法

これは、コマンドラインでの実行、Intellij(質問のとおり)、Gradleなどでの実行を対象としています。

7
Jayson Minard

指定された「メインクラス:」-> com.mypackage.MainKt

そして、パッケージ「com.mypackage」にKotlinファイル「Main」を作成します

package com.mypackage

fun main(args: Array<String>) {
    println("Hello Kotlin!")
}
3
maXp

メイン関数を含むファイルを開き、メニュー->「構成の編集」に移動し、ダイアログで「+」を選択し、タイプとして「アプリケーション」を選択し、ボタンをクリックしてメインクラスを設定します一番上の入力ボックス(「メインクラス」というラベルの付いたボックス)の横。

「モジュールのクラスパスを使用」を選択し、ドロップダウンボックスからモジュールを選択します。 「適用」をクリックして、ダイアログを閉じます。これで、shift + F10で実行し、shift + F9でデバッグし、shift + alt + F10で実行構成を編集できるはずです。メイン画面の右上にある2つのボタンから実行またはデバッグすることもできます。

2
tomjen

Main.ktファイルをプロジェクトのsrcフォルダー内に移動して問題を解決しました。つまり、IntelliJはMainKtクラスを見つけることができました。

1

Kotlinプラグインを更新する必要があり(これはごく最近公開されました)、実行するための右クリックオプションが表示され始めました。私はこの問題を他の何かに突き止めることができなかったので、それだと思います。

この問題が発生している場合は、メイン関数があるソースコードファイルを右クリックして、実行、作成、またはデバッグをクリックします。

Main関数には、「main」という名前(大文字なし)と「Array」引数が必要であることに注意してください。それを機能させようとする新しいプロジェクトを作成していたときに、それが私を数回捉えました。

0

実行したいクラスを右クリックし、Run ClassNameKtオプションを選択するだけで、残りはIntelliJ IDEによって実行されます。

0
user2323471