首页 > 解决方案 > 运行 JAR 时在哪里添加 opencsv 类路径以修复 ClassNotFoundException?

问题描述

JAR 运行并正确检测到主类。但是,当需要 opencsv 时,应用程序会失败。在 IntelliJ 中运行应用程序不会出现问题。我在哪里添加这个类路径?我尝试通过 IntelliJ 工件进行操作,但创建的“JAR”是一个 XML 文件。

Error readout: Exception in thread "main" java.lang.NoClassDefFoundError: com/opencsv/ICSVParser
        at Application.GenerateList(Application.java:23)
        at Application.getOrder(Application.java:139)
        at Application.main(Application.java:68)
Caused by: java.lang.ClassNotFoundException: com.opencsv.ICSVParser
        at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581)
        at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
        ... 3 more

MANIFEST file: Manifest-Version: 1.0
Main-Class: Application
Class-Path: reflections-0.9.12.jar opencsv-4.6.jar protobuf-java-3.6.1.j
 ar commons-collections-3.2.2.jar commons-logging-1.2.jar mysql-connecto
 r-java-8.0.16.jar commons-lang3-3.12.0.jar commons-text-1.3.jar commons
 -collections4-4.2.jar commons-beanutils-1.9.3.jar javassist-3.26.0-GA.j
 ar

摇篮依赖:

dependencies {
    compile group: 'org.apache.commons', name: 'commons-lang3', version: '3.12.0'
    // https://mvnrepository.com/artifact/org.reflections/reflections
    compile group: 'org.reflections', name: 'reflections', version: '0.9.12'
    // https://mvnrepository.com/artifact/org.mockito/mockito-junit-jupiter
    testCompile group: 'org.mockito', name: 'mockito-junit-jupiter', version: '3.4.0'
    compile group: 'com.opencsv',name:'opencsv',version:'4.6'
    testImplementation('org.junit.jupiter:junit-jupiter:5.6.2')
    compile group:'mysql',name:'mysql-connector-java', version: '8.0.16'
    testCompile group: 'junit', name: 'junit', version: '4.12'


}

谢谢。

标签: javajaropencsv

解决方案


推荐阅读