gpt4 book ai didi

java - 无法使用 Gradle 和 Kotlin 运行生成的 JAR 文件

转载 作者:搜寻专家 更新时间:2023-10-31 20:25:27 30 4
gpt4 key购买 nike

我有一个配置了 Gradle 和 Kotlin 的项目。这是一个命令行实用程序,我希望能够从我的终端运行生成的 jar。但是我收到以下错误:

Exception in thread "main" java.lang.NoClassDefFoundError: kotlin/jvm/internal/Intrinsics
at com.autentia.impt.MainKt.main(Main.kt)
Caused by: java.lang.ClassNotFoundException: kotlin.jvm.internal.Intrinsics
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:338)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 1 more

我的gradle配置如下:

buildscript {
ext.kotlin_version = '1.2.20'
ext.junit_platform_version = '1.0.1'
ext.junit_version = '5.0.0'
ext.moshi_version = '1.5.0'
ext.jna_version = '4.5.0'

repositories {
mavenCentral()
}

dependencies {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath "org.junit.platform:junit-platform-gradle-plugin:$junit_platform_version"
}
}

version '1.0-SNAPSHOT'

apply plugin: 'kotlin'
apply plugin: 'application'
apply plugin: 'org.junit.platform.gradle.plugin'

mainClassName = 'com.autentia.impt.MainKt'

repositories {
mavenCentral()
}

dependencies {
implementation "org.jetbrains.kotlin:kotlin-stdlib"
implementation "org.jetbrains.kotlin:kotlin-reflect"
implementation "com.squareup.moshi:moshi:$moshi_version"
implementation "com.squareup.moshi:moshi-kotlin:$moshi_version"
implementation "net.java.dev.jna:jna:$jna_version"
testImplementation("org.junit.jupiter:junit-jupiter-api:$junit_version")
testRuntime("org.junit.jupiter:junit-jupiter-engine:$junit_version")
}

sourceSets {
main.kotlin.srcDirs += 'src/main/kotlin'
}

task wrapper(type: Wrapper) {
gradleVersion = '4.4.1'
}

jar {
manifest {
attributes "Main-Class": mainClassName
}

from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } }
}

compileKotlin {
kotlinOptions.jvmTarget = "1.8"
}

compileTestKotlin {
kotlinOptions.jvmTarget = "1.8"
}

我用来生成 jar 的命令是 ./gradlew clean build,我用来运行 jar 的命令是 java -jar build/libs/impt-1.0-SNAPSHOT。 jar

我试过遵循 official docs我也试过这些资源:1 , 23没有任何运气。

最佳答案

只需将implementation 配置更改为compile。 (至少对于 kotlin-stdlib 而言)

Android 的 Gradle 插件中的 compile 配置已弃用,应替换为 implementationapi,但是对于 kotlin- gradle-plugin,我想你还需要编译

关于java - 无法使用 Gradle 和 Kotlin 运行生成的 JAR 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48380232/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com