Java.lang.NoClassDefFoundError
Juju62
-
juju62 -
juju62 -
Bonjour,
voici comment sont répartis mes dossiers:
ScreeningAssistant : repertoire dans lequel je me mets pour lancer ma commande java
Dans ce rep se trouvent les rep java_api et sa.
dans java_api se trouvent mes .jar et dans sa se trouvent la classe contenant le main(ScreeningAssistantGUI) et d'autres rep(packages) contenant les autres classes de mon appli.
je lance la commande suivante (sous linux debian lenny):
java -classpath ".:java_api/forms-1.0.4.jar:java_api/itext-0.94.jar:java_api/jcommon-0.9.5.jar:java_api/jfreechart-0.9.20.jar:java_api/joelib.jar:java_api/localedata.jar:java_api/log4j.jar:java_api/looks-1.3.1.jar:java_api/mysql-connector-java-3.0.14-production-bin.jar:java_api/vecmath.jar:java_api/jdom.jar" sa/ScreeningAssistantGUI
et voilà la réponse :
Exception during event dispatch:
java.lang.NoClassDefFoundError: joelib.io.types.ChemicalMarkupLanguage
at java.lang.Class.initializeClass(libgcj.so.90)
at java.lang.Class.forName(libgcj.so.90)
at java.lang.Class.forName(libgcj.so.90)
at joelib.io.JOEFileFormat.getMoleculeFileType(JOEFileFormat.java:160)
at joelib.io.IOTypeHolder.loadFileTypes(IOTypeHolder.java:588)
at joelib.io.IOTypeHolder.instance(IOTypeHolder.java:192)
at sa.gui.JOELibStructureViewer.<init>(JOELibStructureViewer.java:46)
at sa.ScreeningAssistantGUI.<init>(ScreeningAssistantGUI.java:83)
at sa.ScreeningAssistantGUI.createAndShowGUI(ScreeningAssistantGUI.java:213)
at sa.ScreeningAssistantGUI.access$0(ScreeningAssistantGUI.java:208)
at sa.ScreeningAssistantGUI$1.run(ScreeningAssistantGUI.java:243)
at java.awt.event.InvocationEvent.dispatch(libgcj.so.90)
at java.awt.EventQueue.dispatchEvent(libgcj.so.90)
at java.awt.EventDispatchThread.run(libgcj.so.90)
Caused by: java.lang.ClassNotFoundException: org.apache.xerces.parsers.SAXParser not found in gnu.gcj.runtime.SystemClassLoader{urls=[file:./,file:java_api/forms-1.0.4.jar,file:java_api/itext-0.94.jar,file:java_api/jcommon-0.9.5.jar,file:java_api/jfreechart-0.9.20.jar,file:java_api/joelib.jar,file:java_api/localedata.jar,file:java_api/log4j.jar,file:java_api/looks-1.3.1.jar,file:java_api/mysql-connector-java-3.0.14-production-bin.jar,file:java_api/vecmath.jar,file:java_api/jdom.jar], parent=gnu.gcj.runtime.ExtensionClassLoader{urls=[], parent=null}}
at java.net.URLClassLoader.findClass(libgcj.so.90)
at gnu.gcj.runtime.SystemClassLoader.findClass(libgcj.so.90)
at java.lang.ClassLoader.loadClass(libgcj.so.90)
at java.lang.ClassLoader.loadClass(libgcj.so.90)
at java.lang.Class.forName(libgcj.so.90)
at java.lang.Class.initializeClass(libgcj.so.90)
...13 more
Je n'arrive pas à résoudre ce problème, pouvez-vous m'aider s'il vous plait?!
voici comment sont répartis mes dossiers:
ScreeningAssistant : repertoire dans lequel je me mets pour lancer ma commande java
Dans ce rep se trouvent les rep java_api et sa.
dans java_api se trouvent mes .jar et dans sa se trouvent la classe contenant le main(ScreeningAssistantGUI) et d'autres rep(packages) contenant les autres classes de mon appli.
je lance la commande suivante (sous linux debian lenny):
java -classpath ".:java_api/forms-1.0.4.jar:java_api/itext-0.94.jar:java_api/jcommon-0.9.5.jar:java_api/jfreechart-0.9.20.jar:java_api/joelib.jar:java_api/localedata.jar:java_api/log4j.jar:java_api/looks-1.3.1.jar:java_api/mysql-connector-java-3.0.14-production-bin.jar:java_api/vecmath.jar:java_api/jdom.jar" sa/ScreeningAssistantGUI
et voilà la réponse :
Exception during event dispatch:
java.lang.NoClassDefFoundError: joelib.io.types.ChemicalMarkupLanguage
at java.lang.Class.initializeClass(libgcj.so.90)
at java.lang.Class.forName(libgcj.so.90)
at java.lang.Class.forName(libgcj.so.90)
at joelib.io.JOEFileFormat.getMoleculeFileType(JOEFileFormat.java:160)
at joelib.io.IOTypeHolder.loadFileTypes(IOTypeHolder.java:588)
at joelib.io.IOTypeHolder.instance(IOTypeHolder.java:192)
at sa.gui.JOELibStructureViewer.<init>(JOELibStructureViewer.java:46)
at sa.ScreeningAssistantGUI.<init>(ScreeningAssistantGUI.java:83)
at sa.ScreeningAssistantGUI.createAndShowGUI(ScreeningAssistantGUI.java:213)
at sa.ScreeningAssistantGUI.access$0(ScreeningAssistantGUI.java:208)
at sa.ScreeningAssistantGUI$1.run(ScreeningAssistantGUI.java:243)
at java.awt.event.InvocationEvent.dispatch(libgcj.so.90)
at java.awt.EventQueue.dispatchEvent(libgcj.so.90)
at java.awt.EventDispatchThread.run(libgcj.so.90)
Caused by: java.lang.ClassNotFoundException: org.apache.xerces.parsers.SAXParser not found in gnu.gcj.runtime.SystemClassLoader{urls=[file:./,file:java_api/forms-1.0.4.jar,file:java_api/itext-0.94.jar,file:java_api/jcommon-0.9.5.jar,file:java_api/jfreechart-0.9.20.jar,file:java_api/joelib.jar,file:java_api/localedata.jar,file:java_api/log4j.jar,file:java_api/looks-1.3.1.jar,file:java_api/mysql-connector-java-3.0.14-production-bin.jar,file:java_api/vecmath.jar,file:java_api/jdom.jar], parent=gnu.gcj.runtime.ExtensionClassLoader{urls=[], parent=null}}
at java.net.URLClassLoader.findClass(libgcj.so.90)
at gnu.gcj.runtime.SystemClassLoader.findClass(libgcj.so.90)
at java.lang.ClassLoader.loadClass(libgcj.so.90)
at java.lang.ClassLoader.loadClass(libgcj.so.90)
at java.lang.Class.forName(libgcj.so.90)
at java.lang.Class.initializeClass(libgcj.so.90)
...13 more
Je n'arrive pas à résoudre ce problème, pouvez-vous m'aider s'il vous plait?!
2 réponses
Bonjour,
j'ai l'impression qu'il manque des lignes dans ton script shell non ? Ou peut etre un problème d'affichage lors du post.
Dans tous les cas voici un exemple de script shell pour lancer une application java, qui fonctionne, si ça peut t'aider :
Personnellement je trouve ça plus propre de configurer le classpath de cette manière, et lancer la classe java simplement avec ses arguments à la fin.
Ce qui compte c'est la commande export qui permet de mettre à jour le classpath de la machine avec ce que tu as rajouté.
Essai de faire de la même manière pour voir si ça change quelque chose.
j'ai l'impression qu'il manque des lignes dans ton script shell non ? Ou peut etre un problème d'affichage lors du post.
Dans tous les cas voici un exemple de script shell pour lancer une application java, qui fonctionne, si ça peut t'aider :
echo "Set working classpath ..." HOME=. export HOME MYCLASSPATH=$HOME/config ### Use of xerces release 2.1.7 MYCLASSPATH=$MYCLASSPATH:$HOME/lib/xml-apis.jar MYCLASSPATH=$MYCLASSPATH:$HOME/lib/xercesImpl.jar MYCLASSPATH=$MYCLASSPATH:$HOME/lib/log4j-1.2.13.jar ### Set classpath with myclasspath CLASSPATH=$MYCLASSPATH:$CLASSPATH export CLASSPATH echo "Working classpath is " $CLASSPATH ### Launch java program ## $1, $2 are script arguments java -Xmx512m -Xms150m org.*.*.*.*.MaClasse $HOME $1 $2;
Personnellement je trouve ça plus propre de configurer le classpath de cette manière, et lancer la classe java simplement avec ses arguments à la fin.
Ce qui compte c'est la commande export qui permet de mettre à jour le classpath de la machine avec ce que tu as rajouté.
Essai de faire de la même manière pour voir si ça change quelque chose.