NoClassDefFoundError org/apache/poi/ss/usermodel/Classeur

Je suis en cours d'exécution d'un script shell qui appelle une classe java pour obtenir certaines données de la base de données et créer un rapport excel avec les données. Je reçois le message d'erreur Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/poi/ss/usermodel/Classeur lorsque le code frappe la ligne ci-dessous dans ma classe java:

XSSFWorkbook  workbook = new XSSFWorkbook ();

C'est la façon dont j'ai défini le classpath:

CLASSPATH=${CLASSPATH}:<path-to-jars>/poi-2.5.1-final-20040804.jar
CLASSPATH=${CLASSPATH}:<path-to-jars>/poi-ooxml-3.11.jar

J'ai vérifié que les pots ont été téléchargés(via gradle), afin d'essayer de comprendre ce qui me manque ici. Quelqu'un peut-il m'aider avec ça?

Stacktrace:

    Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/poi/ss/usermodel/Workbook
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
at com.test.ExcelReportGenerator.writeExcel(ExcelReportGenerator.java:26)
at com.test.ReportRunner.createReport(ReportRunner.java:109)
at com.test.ReportRunner.main(ReportRunner.java:93)
Caused by: java.lang.ClassNotFoundException: org.apache.poi.ss.usermodel.Workbook
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
... 15 more
Pourquoi n'utilisez-vous pas Gradle pour construire un fichier JAR exécutable? Je ne pense pas que le script doit être donné à votre classpath

OriginalL'auteur user1318369 | 2016-10-29