java 未找到类定义错误:组织/Apache/公用资源/lang3/字符串实用程序

91zkwejq  于 2022-12-25  发布在  Java
关注(0)|答案(6)|浏览(206)

我尝试运行this库的示例项目,但收到以下错误:

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$1.run(Unknown Source)
    at java.net.URLClassLoader$1.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

我已经在类路径中添加了公用内容-语言-2.6.jar公用内容-语言3 - 3.1-源代码. jar

    • 主类:**
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);
    }
}

我参考了以下链接:

2sbarzqh

2sbarzqh1#

我已经添加了通用项-lang-2.6.jar和通用项-lang3 - 3.1-源代码.jar ..
你的问题是:commons-lang-2.6.jar不包含org.apache.commons.lang3包,因为它是版本3的一部分,并且commons-lang3-3.1-sources.jar包含源代码,而不是字节码。
您需要包含commons-lang3-3.1.jar

pn9klfpd

pn9klfpd2#

如果您使用的是Maven,请将以下代码放入pom.xml文件中:
适用于Commons Lang的Maven中央存储库:

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

适用于Apache Commons Lang的Maven中央存储库:

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

不要忘记:更新Maven项目

Apache Commons Lang ™依赖项信息

最新发布日期:二○二一年三月二日|版本号:3.12

ApacheMaven

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

Apache构建

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

Apache常春藤

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

格鲁维葡萄

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

分级/Grails

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

斯卡拉SBT

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

莱宁根

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

参考:

hsvhsicv

hsvhsicv3#

Yo添加以下内容并更新maven pronject工作起来很有魅力

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

uhry853o4#

添加以下内容对我有效

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

7nbnzgx95#

当一切都是正确的,很少jar文件被损坏。确保您没有看到错误,如下面编译

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

g6ll5ycj6#

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

相关问题