javaboy
@javaboy

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

Gradleでgradle runができない

Q&A

Closed

解決したいこと

FXGLというAlmasBさんが作ったフレームワークを使ってゲームを作ろうとしています。Gradleにapplicationプラグインを入れたにもかかわらずgradle runで実行できずに困っています

発生している問題・エラー

'gradle run'を実行すると下記のようなエラーが出ます

Starting a Gradle Daemon, 1 busy and 1 incompatible and 1 stopped Daemons could not be reused, use --status for details

> Task :run FAILED
Error: --module-path requires module path specification

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':run'.
> Process 'command '/home/tokushige/.sdkman/candidates/java/11.0.9.hs-adpt/bin/java'' finished with non-zero exit value 1

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

Deprecated Gradle features were used in this build, making it incompatible with Gradle 7.0.
Use '--warning-mode all' to show the individual deprecation warnings.
See https://docs.gradle.org/6.7/userguide/command_line_interface.html#sec:command_line_warnings

BUILD FAILED in 46s
4 actionable tasks: 4 executed

該当するソースコード

build.gradle
plugins {
    id "application"
    id 'org.jetbrains.kotlin.jvm' version '1.4.10'
    id "org.openjfx.javafxplugin" version "0.0.8"
}

group 'org.example'
version '1.0-SNAPSHOT'

application {
    mainClassName = "MainKt"
}

repositories {
    mavenCentral()
    jcenter()
}

dependencies {
    implementation "org.jetbrains.kotlin:kotlin-stdlib"
    compile 'com.github.almasb:fxgl:11.11'
}

javafx {
    version = "13"
    modules = ["javafx.controls", "javafx.media"]
}

自分で試したこと

ファイル断層や、プログラムの内容を見る限りそこには問題ななさそうです。エラーメッセージを見ましたが、kotlinのモジュールの定義方法がわからないです。

0

1Answer

自己解決しました。build.gradleを下記の様にするとgradle runができます。

build.gradle
plugins {
    id "application"
    id 'org.jetbrains.kotlin.jvm' version '1.4.10'
    id "org.openjfx.javafxplugin" version "0.0.8"
}

group 'org.example'
version '1.0-SNAPSHOT'

application {
    mainClassName = "MainKt"
}

repositories {
    mavenCentral()
    jcenter()
}

dependencies {
    implementation "org.jetbrains.kotlin:kotlin-stdlib"
    compile 'com.github.almasb:fxgl:11.11'
}

javafx {
    version = "13"
    modules = ["javafx.controls", "javafx.media", "javafx.fxml"]
}

run {
    doFirst {
        jvmArgs = [
                '--module-path', classpath.asPath,
                '--add-modules', 'javafx.controls'
        ]
    }
}
0Like

Your answer might help someone💌