You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Gradle Kotlin DSL构建Java 9/10环境下的Kotlin项目?

解决Gradle Kotlin DSL + Java 9/10项目的模块找不到问题

嘿,我来帮你搞定这个Java 9+模块系统和Kotlin的兼容问题!你遇到的错误:

module-info.java:3: error: module not found: kotlin.stdlib
requires kotlin.stdlib;

主要是因为旧版Kotlin标准库没适配Java模块系统,再加上你的Gradle配置还有几个小问题需要调整,下面是一步步的解决方案:

1. 升级Kotlin版本到支持Java模块的版本

你当前用的Kotlin 1.2.41太老了,对Java 9+模块系统的支持很有限,建议升级到至少1.3.x以上的稳定版(比如最新的1.9.x系列)。修改build.gradle.kts中的版本号:

buildscript {
    var kotlin_version: String by extra
    kotlin_version = "1.9.20" // 替换为最新稳定版
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath(kotlin("gradle-plugin", kotlin_version))
    }
}

plugins {
    kotlin("jvm") version "1.9.20"
    application
}

2. 修正module-info.java中的模块依赖名称

新版Kotlin标准库的模块名已经不是kotlin.stdlib了,而是带完整包名的org.jetbrains.kotlin.stdlib,如果用了stdlib-jdk8,也要添加对应的模块依赖:

module com.example.testproject {
    // 替换为正确的模块名
    requires org.jetbrains.kotlin.stdlib;
    requires org.jetbrains.kotlin.stdlib.jdk8;
    exports com.example.testproject;
}

3. 统一Java版本和Kotlin编译配置

你当前的配置里Java兼容性设为1.10,但Kotlin的JVM目标是1.8,这会导致不一致。同时需要启用Gradle的模块系统支持:

java {
    sourceCompatibility = JavaVersion.VERSION_10
    targetCompatibility = sourceCompatibility
    // 让Gradle自动推断模块路径,适配Java模块系统
    modularity.inferModulePath.set(true)
}

tasks.withType<KotlinCompile> {
    kotlinOptions.jvmTarget = "10" // 和Java版本保持一致
    // 添加编译参数,确保字节码兼容Java模块系统
    kotlinOptions.freeCompilerArgs += listOf("-Xjvm-default=all")
}

4. 简化依赖配置

stdlib-jdk8已经包含了基础stdlib的内容,不需要重复依赖,而且runtime依赖在新版Kotlin中已经不再需要了:

val kotlin_version: String by extra
dependencies {
    implementation(kotlin("stdlib-jdk8", kotlin_version))
    implementation(kotlin("reflect", kotlin_version))
}

5. (可选)规范项目结构

虽然你把module-info.java放在src/main/kotlin下是可行的,但更规范的做法是将它移到src/main/java目录下,这样可以去掉sourceSets里的java.srcDirs配置,让Gradle默认处理即可。

做完这些调整后,运行gradle clean run,项目应该就能正常编译并运行了!

内容的提问来源于stack exchange,提问作者TeXnician

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 07:14:36