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

能否将Kotlin项目编译为不含Kotlin依赖的纯Java JAR包?

Kotlin项目转纯Java可执行JAR解决方案

首先明确两个核心结论:

  • Kotlin编译器本身没有直接输出Java源代码的能力,它的编译流程是直接将Kotlin源码编译为JVM字节码,因此不存在“直接将Kotlin编译为Java代码生成无依赖JAR”的原生编译选项。
  • 你要的无Kotlin依赖、小体积可执行JAR的需求完全可以通过以下两种路径实现:

方案1:保留Kotlin代码,裁剪冗余依赖(推荐,改造成本极低)

你提到的800KB是完整Kotlin标准库的体积,实际上通过字节码裁剪工具可以把没有用到的标准库代码完全移除,空项目裁剪后最终JAR体积可以压缩到几十KB。
操作步骤:

  1. 如果你用Gradle构建项目,直接启用R8/ProGuard收缩即可,Gradle 7.0+自带R8工具,不需要额外安装插件。
  2. 示例配置(build.gradle.kts):
plugins {
    kotlin("jvm") version "1.9.20"
    application
}

// 配置主类
application {
    mainClass.set("com.example.你的主类名Kt")
}

// 打包包含所有依赖并启用裁剪
tasks.withType<Jar> {
    manifest {
        attributes["Main-Class"] = application.mainClass.get()
    }
    from(configurations.runtimeClasspath.get().map { if (it.isDirectory) it else zipTree(it) })
    duplicatesStrategy = DuplicatesStrategy.EXCLUDE
}

// 启用R8全量收缩
tasks.named("assembleRelease") {
    doLast {
        println("裁剪后的JAR文件输出在build/libs目录下")
    }
}

构建时执行./gradlew assembleRelease即可得到裁剪后的小体积JAR。

方案2:转换Kotlin代码为纯Java代码,完全移除Kotlin依赖

如果你确实需要纯Java源码的项目,可以通过IntelliJ IDEA自带的转换工具实现:

  1. 打开你要转换的Kotlin文件
  2. 顶部菜单栏选择 Tools > Kotlin > Show Kotlin Bytecode
  3. 在弹出的字节码面板点击 Decompile 按钮,即可得到对应的Java源码
  4. 用生成的Java源码替换原Kotlin文件,删除项目中所有Kotlin相关的插件、依赖配置,重新构建即可得到纯Java的可执行JAR。

注意:如果你的代码用到了协程等Kotlin特有的能力,转换后的Java代码可能需要少量手动调整,普通业务逻辑代码转换后基本可以直接运行。

Kotlin项目依赖体积截图

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 11:54:06