gpt4 book ai didi

java - Gradle-FatJar-无法找到或加载主类

转载 作者:行者123 更新时间:2023-12-04 01:37:31 24 4
gpt4 key购买 nike

我知道这个问题被问了很多,有很多答案,但我仍然明白,为什么呢...

我正在尝试从带有gradle依赖项的projet生成.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而且我收到错误消息“找不到或加载主类启动器” ...

我不明白为什么,当我查看.jar​​时,我拥有Launcher类,而在META-INF中却有 list

screenshot

很抱歉仍然在2018年问这个问题,但我想弄清楚哪里出了问题。希望有人能回答!

最佳答案

我在本地转载了您的问题。

只需将exclude 'META-INF/*.RSA', 'META-INF/*.SF', 'META-INF/*.DSA'添加到jar任务即可。

这将排除干扰依赖性的签名。

例:

jar {
manifest {
attributes "Main-Class": mainClassName
}

from {
configurations.compile.collect { it.isDirectory() ? it : zipTree(it) }
}
exclude 'META-INF/*.RSA'
exclude 'META-INF/*.SF'
exclude 'META-INF/*.DSA'
}

关于java - Gradle-FatJar-无法找到或加载主类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51455197/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com