Kotlin调用Java类报错,NoClassDefFoundError

447 阅读1分钟

报错原因: Kotlin 中调用了一个 maven 引入的外部 Jar 包的一个类,导致报java.lang.NoClassDefFoundError
JavaKotlin 项目混编时,首先是需要配置插件:

<plugins>
    <plugin>
        <groupId>org.jetbrains.kotlin</groupId>
        <artifactId>kotlin-maven-plugin</artifactId>
        <configuration>
            <sourceDirs>
                <sourceDir>${project.basedir}/src/main/java</sourceDir>
            </sourceDirs>
        </configuration>
    </plugin>
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
    </plugin>
</plugins>

一开始我的项目 plugins是如上配置,在 kotlin 文件中调用了一个自己引入的外部 Jar 包的类,报错 java.lang.NoClassDefFoundError,然后把 maven 配置中的 configuration 移除就好 移除后的 plugins

<plugins>
    <plugin>
        <groupId>org.jetbrains.kotlin</groupId>
        <artifactId>kotlin-maven-plugin</artifactId>
    </plugin>
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
    </plugin>
</plugins>