我创建了一个Spring引导gradle应用程序。我在build.gradle中指定了主类名称为
apply plugin: 'idea'
apply plugin: 'java'
apply plugin: 'application'
apply plugin: 'eclipse'
sourceCompatibility = 1.8
def appName = 'app'
buildDir = 'gradle-build'
mainClassName = 'package.Application'
dependencies{
----
}
configurations {
compile.exclude group: 'ch.qos.logback'
}
jar {
baseName = appName
manifest {
attributes 'Implementation-Title': 'app',
'Implementation-Version': version,
'Main-Class': mainClassName
}
}
startScripts {
applicationName = appName
}
distributions {
main {
baseName = appName
}
}
当我从eclipse运行我的主类时,它运行正常。但是当我执行将在gradle-build中生成的jar文件时,它会抛出错误"无法找到或加载主类"。
我正在执行命令
java -jar app.jar
我也尝试过其他命令
java -cp -jar app.jar
java -cp app.jar
在所有情况下,我都会遇到同样的错误。
我的清单文件是这样的
Manifest-Version: 1.0
Implementation-Title: app
Implementation-Version: 1.0.0
Main-Class: package.Application
请帮我解决这个问题。
答案 0 :(得分:0)
我遇到了非常类似的问题。
原来问题是我的Meta-INF,在我的jar文件中有一些RSA,SF和dsa文件。
更改您的jar声明,如下所示
jar {
baseName = appName
manifest {
attributes 'Implementation-Title': 'app',
'Implementation-Version': version,
'Main-Class': mainClassName
}
exclude ('META-INF/*.RSA', 'META-INF/*.SF','META-INF/*.DSA')
}