gradle - 无法运行jar文件。 (错误:找不到或加载主类co.pissarra.Mainkt)

标签 gradle jar kotlin build.gradle

我试图使用Spark和Kotlin创建一个小型Web服务器。

但是我被困在应该能够创建项目jar并从命令行运行它的步骤。但是在运行java -jar pissarra-core-all-1.0-SNAPSHOT.jar时出现以下错误
Error: Could not find or load main class co.pissarra.Mainkt
我尝试使用intellij idea的 Artifact 创建没有成功,然后继续使用build.gradle创建jar。以下是相同的代码

task fatJar(type: Jar) {
    manifest {
        attributes 'Implementation-Version': version,
                'Main-Class': 'co.pissarra.Mainkt'
    }
    baseName = project.name + '-all'
    from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } }
    with jar
} 

在运行./gradlew clean./gradlew fatJar之后,我可以在build/libs/目录中创建jar文件。这个 jar 也有同样的错误。

提取jar文件时,我可以看到其中包含co/pissarra/文件的目录结构Mainkt.class。还有META-INF目录和MANIFEST.MF文件,其内容如下
Manifest-Version: 1.0
Implementation-Version: 1.0-SNAPSHOT
Main-Class: co.pissarra.Mainkt

由于stackoverflow不允许上传文件,因此可以找到jar文件here。您还可以从github项目here构建jar文件。

最佳答案

检查您的 list 文件。类名应该是“MainKt”而不是“Mainkt”

关于gradle - 无法运行jar文件。 (错误:找不到或加载主类co.pissarra.Mainkt),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46860255/

相关文章:

passwords - 通过scp进行Gradle uploadArchives多次提示输入密码

kotlin - 即使使用Kotlin Coroutines启动,也确保主JVM程序能够运行

kotlin - Spring Cloud Kafka限制单位时间消息消耗

java - 将 jar 转换为可执行文件的命令行工具?

java - 为什么 jar 忽略我的 list ?

java - 在 Tomcat 中,正在从引导类加载器加载 java.lang.LinkageError : JAXB 2. 1 API

android - 具有水平 GridLayoutManager 的 RecyclerView 将其高度调整到最大行

unity-game-engine - Unity gradle 模板文件夹丢失 (2021.3.6f)

gcc - 为C项目在Gradle中定义用于编译目标文件的文件夹?

gradle - 使用 Gradle 将 Artifactory 上传到 Artifactory