我知道这个问题已经被问了很多次并且有很多答案,但是我仍然不理解为什么...
我正在尝试使用gradle从一个带有依赖关系的项目中生成一个.jar
。
我有一个类src/main/java/Launcher.java
,其中有我的main
方法。
这是我的build.gradle
plugins {
id 'java'
id 'application'
}
version '1.0-SNAPSHOT'
sourceCompatibility = 1.8
mainClassName = 'Launcher'
repositories {
mavenCentral()
}
dependencies {
compile 'commons-io:commons-io:2.1'
compile 'io.vertx:vertx-core:3.4.0'
compile 'io.vertx:vertx-web:3.4.0'
compile 'com.google.code.gson:gson:1.7.2'
compile "com.auth0:java-jwt:3.1.0"
compile 'org.mongodb:mongo-java-driver:3.4.1'
compile 'com.google.guava:guava:24.1-jre'
compile 'commons-io:commons-io:2.6'
}
jar {
manifest {
attributes "Main-Class": mainClassName
}
from {
configurations.compile.collect { it.isDirectory() ? it : zipTree(it) }
}
}
我使用 $>gradle assemble
命令生成我的jar包,然后运行 $>java -jar path/to/my/.jar
命令时,出现了错误 "could not find or load main class Launcher"...
我不明白为什么,在我的.jar文件中,我有Launcher类,并且在META-INF中我有我的清单。
非常抱歉,我知道这个问题早在2018年就被问过了,但我正在尝试找出问题所在,却束手无策。希望有人能够回答!