J'essaie de lancer le projet exemple pcsc qui utilisait cette bibliothèque .
En l'exécutant, j'obtiens l'erreur suivante
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
J'ai ajouté commons-lang-2.6.jar & commons-lang3-3.1-sources.jar dans bibliothèques et dans le chemin de classe aussi. J'ai toujours cette erreur
Code
public static void main(final String[] args) throws CardException, CommunicationException {
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);
}
}
J'ai référé aux liens suivants:
Java.lang.ClassNotFoundException: org.Apache.commons.lang.StringUtils de BaseClassLoader
S'il vous plaît aider!
J'ai ajouté commons-lang-2.6.jar & commons-lang3-3.1-sources.jar ...
Voici votre problème: commons-lang-2.6.jar
ne contient pas le package org.Apache.commons.lang3
, puisqu'il fait partie de la version 3, et commons-lang3-3.1-sources.jar
contient le code source, pas le code d'octet.
Vous devez inclure commons-lang3-3.1.jar
à la place.
Si vous utilisez Maven, mettez ceci dans votre 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>
Informations sur les dépendances d'Apache Commons Lang ™ - Dernière version 3.8 (Publié le 20 Août 2018)
<dependency>
<groupId>org.Apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.8</version>
</dependency>
compile 'org.Apache.commons:commons-lang3:3.8'
'org.Apache.commons:commons-lang3:jar:3.8'
<dependency org="org.Apache.commons" name="commons-lang3" rev="3.8">
<artifact name="commons-lang3" type="jar" />
</dependency>
@Grapes(
@Grab(group='org.Apache.commons', module='commons-lang3', version='3.8')
)
libraryDependencies += "org.Apache.commons" % "commons-lang3" % "3.8
[org.Apache.commons/commons-lang3 "3.8"]
https://commons.Apache.org/proper/commons-lang/dependency-info.html
Yo ajouter le ci-dessous et mettre à jour le pronject maven travaillé comme un charme
<dependency>
<groupId>org.Apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.1</version>
Lorsque tout le reste est correct, le fichier JAR est rarement corrompu. Assurez-vous de ne pas voir d'erreur comme ci-dessous lors de la compilation
[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)