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
NoClassDefFoundError: org/apache/commons/lang3/StringUtils
提问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.jar
doesn't contain the org.apache.commons.lang3
package, since that's part of version 3, and commons-lang3-3.1-sources.jar
contains 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.jar
instead.
您需要改为包含commons-lang3-3.1.jar
。
回答by ?ɑ??????
If you're using Maven, put this inside your pom.xml
file:
如果您使用的是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
回答by smita
Adding below worked for me
添加以下对我有用
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-math3</artifactId>
<version>3.6.1</version>
</dependency>