I’m trying to run the sample project with this library 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$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
I’ve added commons-lang-2.6.jar & commons-lang3-3.1-sources.jar in libs and classpath
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:
Advertisement
Answer
I have added 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.
You need to include commons-lang3-3.1.jar
instead.