de quoi donner de java.lang.NoClassDefFoundError?
Je veux lire un fichier excel, mais donner
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/xmlbeans/XmlObject
at ExcelReader.main(ExcelReader.java:32)
Caused by: java.lang.ClassNotFoundException: org.apache.xmlbeans.XmlObject
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)
... 1 more
s'il vous plaît aider moi.
À la première ouverture .fichier xlsx et de donner ensuite la première feuille.
à la fin de l'impression des données du fichier excel sur console.
Ps : j'ai ajouter poi-ooxml-3.9-20121203.jar pour mon projet.
import java.io.File;
import java.io.FileInputStream;
import javax.swing.text.html.HTMLDocument.Iterator;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import java.util.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
/**
* @author mohammad hosein
*
*/
public class ExcelReader {
/**
* @param args
*/
public static void main(String[] args) {
try
{
FileInputStream file = new FileInputStream(new File("E:\\test.xlsx"));
//Get the workbook instance for XLS file
XSSFWorkbook workbook = new XSSFWorkbook (file);
//Get first sheet from the workbook
XSSFSheet sheet = workbook.getSheetAt(0);
//Get iterator to all the rows in current sheet
java.util.Iterator<Row> rowIterator = sheet.iterator();
while(rowIterator.hasNext())
{
Row row = rowIterator.next();
java.util.Iterator<Cell> cellIterator = row.cellIterator();
while(cellIterator.hasNext())
{
Cell cell = cellIterator.next();
System.out.print(cell.getStringCellValue() + "\t");
}
System.out.println("");
}
}
catch(Exception e)
{
System.out.println("EROR!");
}
//Get iterator to all cells of current row
}
}
Pouvez-vous s'il vous plaît poster erreur trace de la pile ?
Publier vos
utiliser la fonction de recherche. Cela a été demandé à des centaines si pas des milliers de fois.
double possible de Le redoutable java.lang.NoClassDefFoundError , stackoverflow.com/questions/2233656/...
Publier vos
Exception
extrait deutiliser la fonction de recherche. Cela a été demandé à des centaines si pas des milliers de fois.
double possible de Le redoutable java.lang.NoClassDefFoundError , stackoverflow.com/questions/2233656/...
OriginalL'auteur sharafi | 2013-09-20
Vous devez vous connecter pour publier un commentaire.
Votre code n'est pas pertinent.
NoClassDefFoundError
qui arrive quand une classe qui était disponible au moment de la compilation n'est pas disponible au moment de l'exécution. Si vous fourni un plein stacktrace, en collaboration avec le nom de la classe qui n'a pas été trouvé, plus précise, plus les conseils.Cela se produit généralement lorsque vous exécutez votre code avec une version différente d'un BOCAL de celui utilisé pour générer le code. Un voyou POT peut venir dans un conteneur de l'application ou similaires, et d'être placé plus tôt dans le classpath de votre BOCAL.
Mise à jour
Compte tenu de la stacktrace vous avez ajouté, il vous manque une dépendance transitive de Apache POI: XMLBeans. Vous pouvez être absent ce POT au moment de l'exécution. Tout cela dépend de la façon dont vous exécutez votre projet.
OriginalL'auteur Marko Topolnik
Je pense que vous avez oublié de vérifié la bibliothèque dans les propriétés du Projet.
Ichecked. mais ce n'est pas utile
OriginalL'auteur System Integration Pvt Ltd
Ce sera le cas lorsque toutes les poi fichiers jar ne sont pas ajoutés.Donc, ma suggestion est d'ajouter tous les fichiers jar. Ajouter les fichiers jar à l'intérieur de lib et ooxml-lib avec le poi-3.15-beta2 fichiers jar.
Comment Ajouter le jar
OriginalL'auteur user3437379
Apache POI documentation fournit une liste complète des différentes composantes et de leurs dépendances. Vous devez indiquer que vous souhaitez utiliser
poi-ooxml
mais vous semblez avoir manqué au large de laxmlbeans
la dépendance (et peut-être d'autres aussi!). Voir la les composants de la page pour les détails complets de ce que tout les besoins.Si vous téléchargez une version binaire d'Apache POI, alors vous trouverez tous vos dépendances vous pourriez avoir besoin de main ferme de contenus avec le package. Juste ajouter ceux dont vous avez besoin.
Si l'ensemble de ce manuel stuff est un peu dur pour vous, utilisez quelque chose comme Apache Maven ou Apache Ivy pour gérer vos dépendances pour vous.
Ensuite, vous avez besoin de tous ces pots disponible deux fois. Une fois pour la compilation, une fois pour la course. Juste avoir les pots dans eclipse ou similaire peut ne pas être suffisant, vous devez également obtenir dans votre environnement de production!
OriginalL'auteur Gagravarr
Assurez-vous que vous avez "commons-collections.jar" fichier ajouté à votre bibliothèque de télécharger toutes les bibliothèques de fichiers à partir d'ici:
http://www-us.apache.org/dist/poi/release/bin/poi-bin-3.16-20170419.zip
Après les télécharger en fichier zip ouvrir "lib" dossier vous trouverez common-collectins.jar fichier besoin d'être ajouter dans votre bibliothèque de projet, comme vous pouvez le voir dans l'image jointe:
OriginalL'auteur A.Aleem11
NoClassDefFoundError
viendra si une classe a été présent lors de la compilation mais n'est pas disponible dans le classpath java en cours d'exécution. Normalement, vous verrez en dessous de la ligne dans le journal lorsque vous obtenez NoClassDefFoundError:Ce site vous donne toutes les raisons pourquoi vous obtenez cette erreur 3 façons sur la façon de le résoudre
OriginalL'auteur Arun
Généralement
NoClassDefFoundError
exception
va se produire , lorsque le jar requis n'est pas disponible,Vérifier les conditions ci-dessous
Jar file path
par défaut que vous avez ajoutépoi-ooxml-3.9-20121203.jar
Vérifier complètement si d'autres jar est requis au moment de la compilation de la
le programme peut avoir besoin de toute sa classe les fichiers dont vous n'avez pas importé
poi-3.7-jdk1.4-20110508-rc2
jar est requis .OriginalL'auteur kark
Comme son nom l'indique
ClassNotFoundException
en Java est une sous-classe dejava.lang.Exception
et Vient quand de la Machine Virtuelle Java essaie de charger une classe particulière et n'a pas trouvé la classe demandée dans le classpath.Un autre point important à propos de cette Exception est que, C'est un vérifié Exception et vous devez fournir explicitement le traitement d'Exception tout en utilisant des méthodes qui peuvent éventuellement jeter
ClassNotFoundException
en java en utilisant le bloc try-catch ou à l'aide de lance de la clause.Oracle docs
Levée lorsqu'une application tente de charger dans une classe par le biais de son nom de chaîne à l'aide de:
mais pas de définition de la classe avec le nom spécifié peut être trouvé.
Ajouter le
poi-ooxml-schemas-3.9-20121203.jar
fichier au chemin de classe pour éviter d'exception.Vous trouverez sur ces liens
Modifier
Vous manque le supplément de fichiers jar qui viennent avec PI. Les inclure dans votre chemin de classe.
vous avez besoin d'inclure un fichier jar nommé
xmlbeans-x.x.x.jar
get jar ici.
XMLBeans
voir ma réponse mis à jour. Espérons que cela résout votre problème.
OriginalL'auteur Aniket Kulkarni
Il y a 2 important les fichiers jar qui viennent avec poi-3.9 qui doit être inclus en tant que XSSFWorkbook utiliser
xmlbeans*.jar
dom4j-*.jar
Ces deux pots sont présents dans l'ooxml-dossier lib et est une partie de poi-3.9*.zip.
Les inclure dans votre Bibliothèque et qui devrait résoudre le problème.
OriginalL'auteur vikas kapdoskar
J'ai juste eu le même problème.
J'avais ajouté les Bocaux dans \ooxml-lib\ dossier par l'ajout de l'ensemble du dossier pour les Bibliothèques (à l'aide de Netbeans).
Je l'ai enlevé et ajoute chaque fois manuellement, et cela a fonctionné.
OriginalL'auteur RudebwoyG
ajouter xmlbeans-2.3.0.jar dans votre build path.Il est nécessaire pour xlsx.
OriginalL'auteur Saurabh