Java NoClassDefFoundError: org/apache/commons/lang3/StringUtils

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/28504174/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-11 06:20:32  来源:igfitidea点击:

NoClassDefFoundError: org/apache/commons/lang3/StringUtils

javaapachemavendependenciesapache-commons

提问by Rachita Nanda

I'm trying to run the sample project with thislibrary and I get the following error:

我正在尝试使用库运行示例项目,但出现以下错误:

Exception in thread "main" java.lang.NoClassDefFoundError: 

    org/apache/commons/lang3/StringUtils

    at com.github.devnied.emvnfccard.enums.EmvCardScheme.<init>(EmvCardScheme.java:97)
    at com.github.devnied.emvnfccard.enums.EmvCardScheme.<clinit>(EmvCardScheme.java:32)
    at com.github.devnied.emvnfccard.parser.EmvParser.readWithAID(EmvParser.java:277)
    at com.github.devnied.emvnfccard.parser.EmvParser.readEmvCard(EmvParser.java:120)
    at com.github.devnied.emvpcsccard.Main.main(Main.java:64)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.lang3.StringUtils
    at java.net.URLClassLoader.run(Unknown Source)
    at java.net.URLClassLoader.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    ... 5 more

I've added commons-lang-2.6.jar& commons-lang3-3.1-sources.jarin libsand classpath

我在类路径中添加了commons-lang-2.6.jar& commons-lang3-3.1-sources.jar

Main class:

主要类:

public static void main(final String[] args) throws CardException {
    Main pcsc = new Main();
    CardTerminal ct = pcsc.selectCardTerminal();
    Card c = null;
    if (ct != null) {
        c = pcsc.establishConnection(ct);
        CardChannel channel = c.getBasicChannel();
        PcscProvider provider = new PcscProvider(channel);
        EmvParser parser = new EmvParser(provider, false);
        parser.readEmvCard();
        c.disconnect(false);
    }
}

I have referred to the following links:

我参考了以下链接:

采纳答案by azurefrog

I have added commons-lang-2.6.jar & commons-lang3-3.1-sources.jar...

我添加了 commons-lang-2.6.jar & commons-lang3-3.1-sources.jar ...

Here's your problem: commons-lang-2.6.jardoesn't contain the org.apache.commons.lang3package, since that's part of version 3, and commons-lang3-3.1-sources.jarcontains the source code, not the byte code.

这是您的问题: commons-lang-2.6.jar不包含org.apache.commons.lang3包,因为它是版本 3 的一部分,并且commons-lang3-3.1-sources.jar包含源代码,而不是字节码。

You need to include commons-lang3-3.1.jarinstead.

您需要改为包含commons-lang3-3.1.jar

回答by ?ɑ??????

If you're using Maven, put this inside your pom.xmlfile:

如果您使用的是Maven,请将其放入您的pom.xml文件中:

<dependency>
    <groupId>commons-lang</groupId>
    <artifactId>commons-lang</artifactId>
    <version>2.6</version>
</dependency>

<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-lang3</artifactId>
    <version>3.1</version>
</dependency>

Don't forget Update Project

不要忘记更新项目



Apache Commons Lang ? Dependency Information - Last version 3.8 (Published: 20 August 2018)

Apache Commons Lang ? 依赖信息 - 最新版本 3.8(发布时间:2018 年 8 月 20 日)

Apache Maven

阿帕奇Maven

<dependency>
  <groupId>org.apache.commons</groupId>
  <artifactId>commons-lang3</artifactId>
  <version>3.8</version>
</dependency>

Gradle/Grails

摇篮/圣杯

compile 'org.apache.commons:commons-lang3:3.8'

Apache Buildr

阿帕奇构建器

'org.apache.commons:commons-lang3:jar:3.8'

Apache Ivy

阿帕奇常春藤

<dependency org="org.apache.commons" name="commons-lang3" rev="3.8">
  <artifact name="commons-lang3" type="jar" />
</dependency>

Groovy Grape

时髦的葡萄

@Grapes(
@Grab(group='org.apache.commons', module='commons-lang3', version='3.8')
)

Scala SBT

斯卡拉 SBT

libraryDependencies += "org.apache.commons" % "commons-lang3" % "3.8

Leiningen

莱宁根

[org.apache.commons/commons-lang3 "3.8"]


Reference:

参考:

https://commons.apache.org/proper/commons-lang/dependency-info.html

https://commons.apache.org/proper/commons-lang/dependency-info.html

回答by Mohan Narayanaswamy

When everything else is correct, rarely jar file gets corrupted. Ensure you don't see error something like below while compiling

当其他一切都正确时,很少有 jar 文件被损坏。确保在编译时没有看到类似下面的错误

[ERROR] error reading 
C:\Users\Mohan\.m2\repository\org\apache\commons\commons-lang3.7\commons-lang3-3.7.jar; 
ZipFile invalid LOC header (bad signature)

回答by kiran

Yo adding the below and update maven pronject worked like a charm

哟添加以下内容并更新 maven 项目就像一个魅力

<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.1</version>

回答by Shell_Leko

I was having this issue in IJ version 2016 after updating it to 2018.3.4 and clicking "Generate sources and update folders for all projects" at Maven options tab the issue went away

在将其更新到 2018.3.4 并在 Maven 选项选项卡上单击“为所有项目生成源代码和更新文件夹”后,我在 IJ 版本 2016 中遇到了这个问题,问题消失了

IJ Maven tab at IJ 2018.3.4

IJ 2018.3.4 上的 IJ Maven 选项卡

回答by smita

Adding below worked for me

添加以下对我有用

   <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-math3</artifactId>
                <version>3.6.1</version>
     </dependency>