1

Bonjour,
Je travaille depuis quelques mois sur une application permettant de générer des statistiques (via une BD distante). J'ai besoin de pouvoir faire partager ces statistiques à tout mon service et ai donc pensé à faire un applet java.

Pour se faire, je suis en train de transfomer mon code. D'après ce que j'ai pu lire sur internet. Je dois transformer ma JFrame en JApplet (ce qui n'a pas poser de problème). J'ai remplacé ma méthode "main" par la méthode "init".

Cependant, après compilation de mon programme qui se passe bien, j'ai une exception "java.lang.NoClassDefFoundError" qui se leve dans la console java quand je lance mon navigateur devant affiché l'applet. J'ai tenté pas mal de chose mais je n'arrive à rien.

J'ai testé un applet tout simple (juste un affichage) et ce dernier marche sans probleme alors qu'il se trouve dans le même WORKSPACE de mon IDE. Je suppose donc que ce n'est pas une histoire de CLASSPATH. Je sais pas donc d'où peut venir le problème et ca fait 2 jours que je n'avance plus ...

Auriez vous des idées ?

2

Impressionnant, il suffit que je poste pour que je trouve le problème. C'est magique. Cela dit, j'ai trouvé le problème mais je ne l'ai pas résolu. En gros, c'est une librairie que j'utilise qui fait lever l'exception. Mais c'est quand même bizarre car j'utilise 4 librairies différentes et je n'ai aucun problème avec elles. La compilation ne pose aucun problème mais l'exception me dit qu'il a un problème avec une classe de la librairie ...

Comment puis-je résoudre ca ?

3

Rectification, aucune librairies n'est prises en compte, elles levent toutes un "java.lang.NoClassDefFoundError". On y arrive ...

4

Pourquoi tu ne distribues pas l'application plutôt que d'en faire un applet ?
Cependant, ça ne résoudra pas le pb je pense. Comment génères-tu ton .jar (si tu en utilises un) ?
avatar
« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas. »

5

Parce que les machines n'ont pas le JRE par défaut et si les chefs doivent faire une demande d'installation qui prend 2 jours juste pour tester une version 0.1 d'une appli d'un pauvre stagiaire, ca va vite les décourager. Par contre, les navigateurs ont leur JRE. Donc une applet me semble plus satisfaisante...

J'ai réussi a régler le problème de mes NoClassDefFoundError ... il fallait que j'ajoute un attribut archive ="lib.jar,lib2.jar"; faisant liaison avec mes librairies ...

Par contre je suis confronté à un autre problème ... (qui m'embête vraiment beaucoup plus que les autres car je dois rendre mon projet dans 3h00). Un applet ne peut pas accéder à des fichiers externes d'après ce que j'ai compris (pour la sécurité), genre par exemple des fichiers localisés sur le disque dur, ou une BD distante. Hors, fort malheureusement, je dois accéder à ce type de donnée. J'ai lu un peu partout que je devais signer mon applet . J'ai suivi des tutos mais ca ne marche pas.
Ils disent de signer le .jar ou il y a mon applet ...., pour moi il n'y a pas de .jar pour un applet. Je lance l'applet depuis un ".class" et ca me suffi. Donc je ne sais pas vraiment quoi signer.
De plus, j'ai signé toutes mes librairies. Une fois cela fait, a l'ouverture de mon applet, j'ai bien eu le message de certification de l'applet. Mais une fois acceptée, l'applet ne marchait toujours pas ...
Que faire. J'ai plus que 3h00 pour faire ca, et j'ai pas du tout de solutions ... Je vous en pris messieurs, aidez moi.

6

mattyeux (./5) :
Parce que les machines n'ont pas le JRE par défaut et si les chefs doivent faire une demande d'installation qui prend 2 jours juste pour tester une version 0.1 d'une appli d'un pauvre stagiaire, ca va vite les décourager. Par contre, les navigateurs ont leur JRE.
hé non. Les navigateurs utilisent la JRE qui est installé sur le système...
Et pourquoi pas faire une simple appli web html ?

7

Il me semble que Internet Explorer utilise sa propre JVM, non ?
avatar
« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas. »

8

ho, oui, c'est vrai, désolé... je devrais arrêter de raconter des conneries moi...

9

Mmm, encore ? Ils avaient eu un procès de Sun pour début de fork y'a quelques années, la JVM de Microsoft a normalement dû disparaître de tous ses produits.