我正在尝试使用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文件。
答案 0 :(得分:1)
检查您的MANIFEST文件。类名应为“MainKt”而不是“Mainkt”