Bonjour,
J'ai créé une librairie "librairie1" sous la forme d'un jar qui elle-même a besoin de l'API JEXCEL.
J'ai créé une classe "ConvertExcelToFlatFile" qui se charge d'exécuter une classe dans librairie1.
Si je place mes 2 librairies dans le même dossier que ma classe que j'exécute, cela fonctionne, mais pas avec mes jar (au moins cela fonctionne avec les jar décompressés, c'est déjà bien).
java ConvertExcelToFlatFile
J'aimerai par contre placer mes 2 librairies dans un autre dossier, ./lib par exemple. J'ai vu qu'il fallait utilisé -cp ou -classpath pour spécifier l'emplacement des librairies. J'ai donc déplacer mes 2 libraires dans ./lib et écrit :
java -cp ./lib ConvertExcelToFlatFile
ou même
java -cp ./lib/librairie.jar ConvertExcelToFlatFile
Et c'est la qu'il me sort :
1 2 3 4 5 6 7 8 9 10
| Exception in thread "main" java.lang.NoClassDefFoundError: librairie1/ExcelToFlatFileException
Caused by: java.lang.ClassNotFoundException: librairie1.ExcelToFlatFileException
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
Could not find the main class: ConvertExcelToFlatFile. Program will exit. |
J'ai essayé avec -classpath mais idem.
En plus de vouloir régler ce problème, j'aimerai au final utiliser les librairies en jar et non en dossier/sous-dossier/fichiers.
Merci d'avance pour votre aide.
Partager