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

时间:2017-10-21 05:09:28

标签: gradle jar kotlin build.gradle

我正在尝试使用spark和kotlin创建一个小型网络服务器。

但我陷入了能够创建项目jar并从命令行运行它的步骤。但是在运行java -jar pissarra-core-all-1.0-SNAPSHOT.jar

时出现以下错误

Error: Could not find or load main class co.pissarra.Mainkt

我尝试使用intellij idea的工件创建没有成功,并继续使用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文件。

1 个答案:

答案 0 :(得分:1)

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