gpt4 book ai didi

gradle - 随着JDA 4.2.0的新更新,VPS上新建的JAR文件返回NoClassDefFoundError

转载 作者:行者123 更新时间:2023-12-03 05:03:45 32 4
gpt4 key购买 nike

使用JDA 4.2.0的新更新后,尝试在VPS上运行jar文件失败。
我尝试了各种选择,例如

  • creating a fat jar
  • 搜索其他类似问题
  • source 1
  • source 2


  • 但是,这些选项似乎都不起作用,因为VPS控制台输出保持不变:
    Error: Could not find or load main class ...
    Caused by: java.lang.NoClassDefFoundError: net/dv8tion/jda/api/hooks/ListenerAdapter
    所以我当前的问题是,我的 gradle.build应该是什么样的?或者这是VPS无法正确刷新的问题?也许还有另一个我不知道的问题。
    至于我的 gradle.build是什么样的:
    buildscript {
    repositories {
    jcenter()
    }
    dependencies {
    classpath 'com.github.jengelman.gradle.plugins:shadow:2.0.1'
    }
    }

    apply plugin: 'java'
    apply plugin: 'com.github.johnrengelman.shadow'

    group '...'
    version '2.0-SNAPSHOT'

    repositories {
    mavenCentral()
    jcenter(
    )
    }

    dependencies {
    testCompile group: 'junit', name: 'junit', version: '4.+'
    compile 'net.dv8tion:JDA:4.2.0_168'
    compile group: 'commons-collections', name: 'commons-collections', version: '3.2'
    compile group: 'mysql', name: 'mysql-connector-java', version: '8.0.20'
    compile group: 'javax.persistence', name: 'persistence-api', version: '1.0'
    compile 'com.vdurmont:emoji-java:5.1.1'
    }

    jar {
    manifest {
    attributes(
    'Main-Class': '...'
    )
    }
    }
    注意:在 1.0-SNAPSHOT的上一个快照中,以下 gradle.build用来启动项目:
    plugins {
    id 'java'
    id 'application'
    }

    group '...'
    version '1.0-SNAPSHOT'

    repositories {
    mavenCentral()
    jcenter()
    }

    dependencies {
    testCompile group: 'junit', name: 'junit', version: '4.+'
    compile 'net.dv8tion:JDA:3.5.0_329'
    compile group: 'commons-collections', name: 'commons-collections', version: '3.2'
    compile group: 'mysql', name: 'mysql-connector-java', version: '8.0.20'
    compile group: 'javax.persistence', name: 'persistence-api', version: '1.0'
    compile 'com.vdurmont:emoji-java:5.1.1'
    }

    最佳答案

    您可以使用此build.gradle来构建工作的影子 jar :

    plugins {
    id 'application' // this allows you to set a mainClassName
    id 'com.github.johnrengelman.shadow' version '6.0.0' // this adds the shadowJar task
    }

    group '...'
    version '2.0-SNAPSHOT'
    mainClassName = 'your main class goes here' // this sets the main class property in your manifest automatically

    repositories {
    jcenter() // jcenter is a superset of mavenCentral
    }

    dependencies {
    testCompile group: 'junit', name: 'junit', version: '4.+'
    compile 'net.dv8tion:JDA:4.2.0_191'
    compile group: 'commons-collections', name: 'commons-collections', version: '3.2'
    compile group: 'mysql', name: 'mysql-connector-java', version: '8.0.20'
    compile group: 'javax.persistence', name: 'persistence-api', version: '1.0'
    compile 'com.vdurmont:emoji-java:5.1.1'
    }
    运行 shadowJar gradle任务来编译您的jar文件。然后将其放置在 build/libs内,格式为 [name]-all.jar。不要忘记用您的主类的完全限定名称替换 mainClassName

    关于gradle - 随着JDA 4.2.0的新更新,VPS上新建的JAR文件返回NoClassDefFoundError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63426422/

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