Problème javabeans : jar impossible à lancer dans la beanbox

Problème javabeans : jar impossible à lancer dans la beanbox - Java - Programmation

Marsh Posté le 18-11-2004 à 18:18:06    

Bonjour
 
Je suis en train de me mettre aux javabeans pour un projet, et je recontre un problème qui vient de me niquer l'après midi alors je me tourne vers vous pour me montrer la voie  :love:  (Surtout que c'est un problème tout con j'en suis sur :ange: )
 
Donc j'ai commencé par faire ce bon vieux tutorial... pas de problème pour  faire le SimpleBean.java, tout va bien je l'insere dans la beanbox...
 
Maintenant j'ai un jar contenant 2 fichiers java : BarChartDemo.java et DataSetUtilities.java (qui utilisent des librairies externes mais si ca venait de la il trouverait quand meme le .class non?)
 
je les fous dans un jar, voila mon manifest :  
 

Code :
  1. Manifest-Version: 1.0
  2. Name:BarChartDemo.class
  3. Java-Bean: True


 
et ensuite quand je veuc le loader dans la beanbox il me sort une ClassNotFoundException pour BarChartDemo.java...
 
 
Ca c'est la trace de la beanBox

Code :
  1. F:\burotik - informatique\informatique\java\javabeans\BDK\beanbox>if "Windows_NT
  2. " == "Windows_NT" setlocal
  3. F:\burotik - informatique\informatique\java\javabeans\BDK\beanbox>set CLASSPATH=
  4. classes;..\lib\methodtracer.jar;..\infobus.jar
  5. F:\burotik - informatique\informatique\java\javabeans\BDK\beanbox>java sun.beanb
  6. ox.BeanBoxFrame
  7. WARNING: Could not instantiate bean "BarChartDemo" from JAR "C:\Documents and Se
  8. ttings\Spitagor\Bureau\projet barchart\dist\testchart.jar"
  9.     But were unable to load the class "BarChartDemo" because of
  10.         java.lang.ClassNotFoundException: BarChartDemo
  11.     Common reasons for this failure include:
  12.     (1) The class is not defined in the correct package
  13.         it should be in the default package il est a la racine, pas de problème...
  14.     (2) The class has not been given the correct name
  15.     it should be called "BarChartDemo" Bon ca c bon...
  16.     (3) The class file contains the wrong class or no class at all Ben non ca contient bien les bonnes classes


 
Vous allez me dire c'est un problème de classpath...ca c sur.. mais bon j'ai essayé de faire un batch contenant ca :
 

Code :
  1. SET JAVA_HOME=E:\java 1.5
  2. SET PATH=%JAVA_HOME%\bin;%PATH%
  3. SET CLASSPATH=F:\burotik - informatique\informatique\java\JFreeChart\jfreechart-0.9.21.jar
  4. #SET CLASSPATH=%CLASSPATH%C:\Documents and Settings\Spitagor\Bureau\projet barchart\dist (Ca c la ou il y a mon jar à loader a mon avis ca sert a rien mais bon...)
  5. #SET CLASSPATH=%CLASSPATH%


 
Ca y fait rien.. il veut toujours pas loader mon jar. J'ai l'impression que mon Classpath est écrasé... mais pourtant avec le SimpleBean.java pas de problème !!!
 
Merci d'avance à benou,nraynaud et les autres, help me sinon je vais craquer mentalement et ensuite je pourrais plus dire aux autres que java cai bien :)


Message édité par spitagor le 18-11-2004 à 18:51:57
Reply

Marsh Posté le 18-11-2004 à 18:18:06   

Reply

Marsh Posté le 18-11-2004 à 19:34:35    

non, parfois un ClassNotFoundException n'indique pas la classe qui manque, donc oui, commence par mettre les jars que tu utilise dans ton classpath.
 
ensuite, utilise des packages. tu dis que ta classe est "à la racine" du jar. donc tu n'as pas déclaré de package dans le source hein?

Reply

Marsh Posté le 18-11-2004 à 20:59:56    

non, je n'ai pas de packages.
 
J'en avais mis au début, mais de peur que ca vienne de la, je les ait virés... mais ca ne fonctionne toujours pas...

Reply

Marsh Posté le 18-11-2004 à 21:22:05    

Déja un bug, il faut un espace :
 

Code :
  1. Name: BarChartDemo.class


 
au lieu de :
 

Code :
  1. Name:BarChartDemo.class

 
 
c'est netbeans qui l'a dit :ange:

Reply

Marsh Posté le 18-11-2004 à 21:46:35    

Bon je récapitule ::
 
 
mon jar (crée avec netbeans et je change juste le manifest) : 2 packages
 
lib : mes archives jar (librairies externes)
bean : package contenant le bean :  
BarChartDemo.class
DatasetUtilities.class
 
manifest :  
 

Code :
  1. Manifest-Version: 1.0
  2. Name: bean.BarChartDemo.class
  3. Java-Bean: True
  4. Class-Path: lib/jfreechart-0.9.21.jar lib/jcommon-0.9.6.jar


 
Et il veut toujorus pas me loader mon jar avec toujours le meme message d'erreur...
 
C'est a n'y rien comprendre, le SimpleBean.java marche pourtant a merveille... et je comprend vraiment pas le message d'erreur puisque c obligé qu'il le trouve le barchartDemo... :(  
 
J'ai oublié quelque chose?  
 
(au fait, j'ai installé ant, ca peut venir de la ou pas?)
 
edit : j'avais oublié une librairie mais ca fait toujours pareil...


Message édité par spitagor le 19-11-2004 à 11:36:20
Reply

Marsh Posté le 18-11-2004 à 22:53:01    

tu es sur du T majuscule a True ?

Reply

Marsh Posté le 18-11-2004 à 23:14:09    

certain, le tutorial de Sun le présente comme ca, et les manifests des jars fournis aussi... la seule différence vient que eux ils mettent le n° de version de java, mais bon hein je vois pas pourquoi ca viendrait de la...
 
 
nraynaud, pitié montre toi :cry:  :sweat:

Reply

Marsh Posté le 18-11-2004 à 23:33:56    

Bon... je viens de lire sur le tutorial que si un objet implemente Serializable alors son constructeur ne doit pas avori d'arguments.... et comme par hasard chez moi il y en avait... donc je pense que ca vient de la puisque j'ai ce message d'erreur maintenant :  
 

Code :
  1. java.lang.NoClassDefFoundError: org/jfree/chart/ChartPanel
  2.         at java.lang.Class.getDeclaredMethods0(Native Method)
  3.         at java.lang.Class.privateGetDeclaredMethods(Unknown Source)
  4.         at java.lang.Class.getDeclaredMethods(Unknown Source)
  5.         at java.beans.Introspector$1.run(Unknown Source)
  6.         at java.security.AccessController.doPrivileged(Native Method)
  7.         at java.beans.Introspector.getPublicDeclaredMethods(Unknown Source)
  8.         at java.beans.Introspector.getTargetMethodInfo(Unknown Source)
  9.         at java.beans.Introspector.getBeanInfo(Unknown Source)
  10.         at java.beans.Introspector.getBeanInfo(Unknown Source)
  11.         at sun.beanbox.JarInfo.<init>(JarInfo.java:66)
  12.         at sun.beanbox.JarLoader.createJarInfo(JarLoader.java:292)
  13.         at sun.beanbox.JarLoader.loadJar(JarLoader.java:197)
  14.         at sun.beanbox.JarLoader.loadJarDoOnBean(JarLoader.java:207)
  15.         at sun.beanbox.ToolBoxPanel.addBeansInJar(ToolBox.java:175)
  16.         at sun.beanbox.ToolBoxScrollPane.addBeansInJar(ToolBox.java:79)
  17.         at sun.beanbox.ToolBox.addBeansInJar(ToolBox.java:42)
  18.         at sun.beanbox.BeanBox.loadJar(BeanBox.java:596)
  19.         at sun.beanbox.BeanBox.doMenuItem(BeanBox.java:1067)
  20.         at sun.beanbox.BeanBox.run(BeanBox.java:1294)
  21.         at java.lang.Thread.run(Unknown Source)


 
monologue powa  :)


Message édité par spitagor le 18-11-2004 à 23:45:54
Reply

Marsh Posté le 19-11-2004 à 00:15:19    

Bon apparemment on ne peut pas inclure de jars dans un autre jar, il faut que les librairies externes soient dan le repertoire du jar... mais ca ne marche toujours pas pourtant dans mon manifest il y a :
 

Code :
  1. Manifest-Version: 1.0
  2. Name: bean/BarChartDemo.class
  3. Java-Bean: True
  4. Class-Path: ./lib/jfreechart-0.9.21.jar ./lib/jcommon-0.9.6.jar


 
ca devrait marcher :cry:

Reply

Marsh Posté le 19-11-2004 à 10:57:57    

spitagor a écrit :

Bon je récapitule ::
 
 
mon jar (crée avec netbeans et je change juste le manifest) : 2 packages
 
lib : mes archives jar (librairies externes)
bean : package contenant le bean :  
BarChartDemo.java
DatasetUtilities.java
 
 


 
Ce qui me fait peur c'est BarChartDemo.java et DatasetUtilities.java
 
Un jar ne doit pas contenir les .java mais les .class !!!
 
ouvre ton jar avec winzip (ou autre) et regarde cequ'il contient

Reply

Marsh Posté le 19-11-2004 à 10:57:57   

Reply

Marsh Posté le 19-11-2004 à 11:35:31    

faute de frappe :) , c'est bien des .class qu'il y a dans mes packages...

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed