Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/poi/ss/usermodel/Classeur lors de l'exécution du fichier jar


J'ai écrit un programme java pour convertir le fichier xml d'entrée en un autre fichier xml. Tout en faisant cela, j'utilise un fichier Excel et pour accéder au fichier xml, j'ai utilisé les bibliothèques apache-poi.

Lorsque j'exécute mon programme dans eclipse, cela fonctionne bien et donne les résultats requis. Maintenant, j'exporte le projet dans un fichier jar et j'ai sélectionné ma classe principale lors de l'exportation dans jar. Mais lorsque j'exécute le fichier jar, je reçois l'exception suivante:

D:\>java -jar EDR_to_DER_with_excel.jar
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/poi/ss/usermodel/Workbook
Caused by: java.lang.ClassNotFoundException: org.apache.poi.ss.usermodel.Workbook
    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)
Could not find the main class: com.unisys.xml.TestExcel. Program will exit.

L'erreur est liée aux bibliothèques que j'utilise. Mais je ne sais pas pourquoi cela arrive, car je suis capable d'exécuter le programme dans eclipse. La classe de bibliothèque est-elle disponible dans le fichier jar> Sinon, comment puis-je la donner au jar lors de l'exportation?

Author: Madhusudan, 2015-11-23

4 answers

Il semble que les bibliothèques de POI Apache ne soient pas dans le classpath

Ajoutez l'emplacement des bibliothèques à la variable PATH de votre système (en supposant Windows basé sur le lecteur D:\ en question).

 2
Author: Vivek, 2015-11-23 16:43:53

Le projet d'exportation n'inclut pas les fichiers jar externes par défaut. Vous devez ajouter la bibliothèque tierce au classpath:

java -cp <lips> -jar EDR_to_DER_with_excel.jar
 2
Author: Jens, 2015-11-23 16:45:22

J'ai la solution. J'ai suivi une approche simple.

-> Right click on project 
-> Export 
-> as Runnable jar 
-> select radio button "Package required libraries into generated jar"
-> finish

Cette approche a fonctionné pour moi :)

 0
Author: Madhusudan, 2015-11-24 14:13:02

J'ai eu la réponse de la requête dans ce cas, les fichiers jar sont manquants dans le programme .Veuillez vérifier qu'ils sont ajoutés à partir du chemin approprié. Cela a fonctionné pour moi

 0
Author: gojiri, 2017-01-12 04:19:34