[applet Java] développé en j2sdk 1.3 => execution sous j2re 1.3

développé en j2sdk 1.3 => execution sous j2re 1.3 [applet Java] - Programmation

Marsh Posté le 21-03-2002 à 17:13:46    

Donc voilà, on a developpé à plusieurs une applet Java qui emule un OS.
On voit l'état du système qui évolue au fur et à mesure de l'avancement dans le temps.
 
J'ai passé l'après midi à essayer de déployer l'applet, bon j'ai réussi à la faire marcher dans l'applet viewer avec le fichier html :

Code :
  1. <html>
  2. <head>
  3. <title>
  4. Page web de SimulOS
  5. </title>
  6. </head>
  7. <body>
  8. Affichage.CAffichage apparaîtra ci-dessous dans un navigateur Java.<br>
  9. <applet
  10.   codebase = "."
  11.   code     = "Affichage.CAffichage.class"
  12.   archive  = "simulosAffichage.jar,simulosNoyau.jar,jdom.jar,jaxp.jar,parser.jar,xerces.jar,collections.jar"
  13.   name     = "AppletSimulOS"
  14.   width    = "800"
  15.   height   = "600"
  16.   hspace   = "0"
  17.   vspace   = "0"
  18.   align    = "top"
  19. >
  20. Java non supporté ?
  21. </applet>
  22. </body>
  23. </html>


 
donc, avec l'appletViewer tout marche, mais sous IE j'ai une erreur :
java/util/vector : get(I)LJava/lang/object : not found
 
j'ai l'impression que c'est tout con, svp aidez-moi !

 

[jfdsdjhfuetppo]--Message édité par altus--[/jfdsdjhfuetppo]

Reply

Marsh Posté le 21-03-2002 à 17:13:46   

Reply

Marsh Posté le 21-03-2002 à 17:18:07    

effectivement. Tu utilises des classes qui ne sont disponibles que dans un JDK supérieur à celui de la JVM interne de ton browser.
 
Tu dois installer le JRE pour que ca fonctionne. Pour utiliser le plugin (JRE) à la place de la JVM interne du browser, tu dois passer ton fichier html à la moulinette dans un petit soft fournis avec le JDK qui s'appelle HTMLConverter
 
Pour le jre c'est ici que ca se passe:
 
http://java.sun.com/getjava
 
A+

 

[jfdsdjhfuetppo]--Message édité par DarkLord--[/jfdsdjhfuetppo]


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 21-03-2002 à 17:24:50    

DarkLord a écrit a écrit :

effectivement. Tu utilises des classes qui ne sont disponibles que dans un JDK supérieur à celui de la JVM interne de ton browser.
 
Tu dois installer le JRE pour que ca fonctionne. Pour utiliser le plugin (JRE) à la place de la JVM interne du browser, tu dois passer ton fichier html à la moulinette dans un petit soft fournis avec le JDK qui s'appelle HTMLConverter
 
Pour le jre c'est ici que ca se passe:
 
http://java.sun.com/getjava
 
A+  
 
 




 
merci pour la réponse :hello:
 
ok je vois, donc la solution est de mettre les classes à disposition de l'applet sur le poste client.
Mais comme tu peux le voir, j'utilise déjà beaucoup de classes non standard (JDOM) et je les inclus dans l'applet par la ligne
archive = "..."
 
J'aimerais bien, si c'est possible, inclure les classes dans mon applet. La taille n'étant pas un problème, comment puis-je savoir quelles classes/jar je dois inclure ?
 
PS : est ce que c'est logique que l'applet fonctionne dans l'appletviewer ?

Reply

Marsh Posté le 21-03-2002 à 17:29:18    

altus a écrit a écrit :

 
J'aimerais bien, si c'est possible, inclure les classes dans mon applet. La taille n'étant pas un problème, comment puis-je savoir quelles classes/jar je dois inclure ?
 
PS : est ce que c'est logique que l'applet fonctionne dans l'appletviewer ?  




 
Réponse à ta question 1: Je ne pense pas que ce soit possible. Si tu travailles avec la JVM du browser qui est 1.1 tu ne peux pas faire du code qui a été développé via une JMV 1.3 même si tu lui fournis les classes. A partir du moment ou c'est des classes genre java.... qui manquent, tu dois upgrader ta JVM car ce n'est pas une extension compatible JVM 1.1). Si l'espace n'est pas un problème tu peux mettre le JRE à disposition de tes utilisateurs (5Mo si je me souviens bien).
 
Réponse à ta question 2: Oui car dans le cas de l'applet viewer ce n'est pas la JVM du browser qui est invoquée mais celle définit par défaut dans ton environnement (genre jdk 1.3 ou autre).
 
C'est un gros problème. Il fallait développer ton applet avec un vieux JDK (genre JDK 1.1.8) pour que le portage vers le browser se fasse facilement. Mais vu les classes et les extensions que tu utilise j'ai un doute ...
 
JRE = solution à ton problème (j'ai les memes soucis que toi avec une applet permettant de rejouer un cours donné en ligne).


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 21-03-2002 à 17:30:05    

Ouais, en fait, c'est pas une classe, en l'occurence, puisque Vector est dan,s l'API java 1.1.5, c'est une méthode (vector.get(int), il faut utiliser Vector.getElementAt(int))
 
Bon, sinon, pour ton applet....Le plus simple est de trouver les sources de tous les packages que tu utilises, et de compiler le tout avec un truc dans le genre :  
 
javac -d cible -classpath . -sourcepath . ma.classe.de.Tete.java
 
depuis la racine de tes sources, la classe de tête étant la classe "principale"...
 
*Bon, évidement, le moindre appel reflexif, et tu l'as dans le cul, mais bon!! :D:D On fait ça (enfin, perso, je fais ça) pour une applet pour laquelle la taille compte.......Si la taille ne compte pas...Ben tu déjarres tes packages externes dans le répertoire à partir duquel tu crées le jar de ton applet (jar -xf Package.jar) , et tu rejarres le tout!
 
Ouala!

Reply

Marsh Posté le 21-03-2002 à 17:31:43    

gfive -> non !!
 
Si tu as une JVM 1.1, c'est pas en lui filant les bonnes classes qu'il va s'en sortir.
 
Les packages java. ... ne sont pas des extensions mais des libraires standard.
 
Conclusion si tu veux utiliser java.MonObjet et qu'il est since 1.2 il te faut une JVM 1.2 ou plus  
 
A+


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 21-03-2002 à 17:32:14    

DarkLord a écrit a écrit :

 
 
Réponse à ta question 1: Je ne pense pas que ce soit possible. Si tu travailles avec la JVM du browser qui est 1.1 tu ne peux pas faire du code qui a été développé via une JMV 1.3 même si tu lui fournis les classes.  




 
Bah, pourtant, je fais tourner des applets compilées avec un JDK 1.3.x sur des browsers sans JRE... donc, ça doit marcher..Mais bon, j'ai quand même vérifié que je n'utilise aucun appel > 1.1.x!!

Reply

Marsh Posté le 21-03-2002 à 17:33:15    

gfive a écrit a écrit :

 
 
Bah, pourtant, je fais tourner des applets compilées avec un JDK 1.3.x sur des browsers sans JRE... donc, ça doit marcher..Mais bon, j'ai quand même vérifié que je n'utilise aucun appel > 1.1.x!!  




 
ah bin oui !!! Si tu n'utilise aucun appel > 1.1.w c'est normal que ca marche. Mais ce n'est pas le cas d'altus qui semble aussi faire appel à des librairies évoluées et non accessible a cette version de la JVM.


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 21-03-2002 à 17:34:00    

Dark : ouais, autant pour moi, le coup des classes à ajouter..Bon, j'ai oublié de dire "Tu prends les .java, et tu recompiles avec un jdk < 1.1.8"
 
mais bon, ça va pas marcher, alors!! :D:D

Reply

Marsh Posté le 21-03-2002 à 17:34:24    

gfive a écrit a écrit :

Dark : ouais, autant pour moi, le coup des classes à ajouter..Bon, j'ai oublié de dire "Tu prends les .java, et tu recompiles avec un jdk < 1.1.8"
 
mais bon, ça va pas marcher, alors!! :D:D  




 
exactement cher ami :D
 
 :hello:


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 21-03-2002 à 17:34:24   

Reply

Marsh Posté le 21-03-2002 à 17:36:29    

je crois que j'ai compris le problème.
 
Allez je vais tester tout ça...
 
merci en tous cas les gars :)

Reply

Marsh Posté le 21-03-2002 à 17:37:08    

altus a écrit a écrit :

je crois que j'ai compris le problème.
 
Allez je vais tester tout ça...
 
merci en tous cas les gars :)  




 
encore un truc. Pour répondre au ? du titre de ton topic, je pense quoi OUI, ce genre de prob est ultra classique.


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 21-03-2002 à 18:43:31    

bon ben voilà :
 
Avec le j2re-1_3_1, ça marche.
 
J'ai tenté une migration vers 1.1.x, mais je n'en finirais pas de modifier le code...
 
Donc, problème résolu, changement du titre du post :)

Reply

Sujets relatifs:

Leave a Replay

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