IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Applets Java Discussion :

[Applet][JAR]Charger une applet depuis un fichier jar


Sujet :

Applets Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 15
    Points : 12
    Points
    12
    Par défaut [Applet][JAR]Charger une applet depuis un fichier jar
    J'ai beau retourner le problème dans tous les sens, impossible de charger correctement mon applet compressée dans un fichier jar depuis le navigateur !

    Mon applet dérive de JApplet, a une méthode public void init()

    Mon fichier jar a un fichier manifest de ce genre :

    Manifest-Version: 1.0
    Main-Class: package.MonApplet

    (mon package ne s'appelle pas package et mon applet ne s'appelle pas MonApplet non plus, mais c'est pour simplifier la représentation du manifest)

    Ce qui permet de la charger "hors contexte" c'est-à-dire en lançant directement le fichier jar, grâce à une méthode main() dans la classe MonApplet elle-même

    J'utilise la balise <applet> avec des paramètres (avec ou sans ça marche pas de toutes façons...)

    Et l'erreur que j'ai, visiblement, c'est un problème de chargement de la classe.

    Donc si on peut m'expliquer où se situe mon erreur, quelle est (sont) l'utilisation que l'on doit faire de la balise <applet> afin d'avoir un format correct, ou encore si le problème peut venir du fichier manifest (la classe est bien dans le jar à l'endroit décrit par le manifest), merci d'avance.

    J'avoue que ça me désespère un peu de lutter, et inutile de me pointer la faq, malheureusement rien à ce sujet n'est disponible dedans

  2. #2
    Membre expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Points : 3 675
    Points
    3 675
    Par défaut
    salut,

    dans ton code HTML, essaie de faire comme cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <applet code="monpackage.monApplet" codebase="." archive="monarchive.jar" width="200" heigth="200">
    </applet>
    chez moi ça fonctionne nickel...

    "Le plug gros problème des citations trouvées sur internet, c'est qu'on ne peut jamais garantir leur authenticité"

    Confucius, 448 av. J-C

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 15
    Points : 12
    Points
    12
    Par défaut
    Ya rien à y faire, j'y comprends rien

    La console java me rapporte cette exception :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    java.lang.IllegalArgumentException
    	at sun.net.www.ParseUtil.decode(Unknown Source)
    	at sun.net.www.protocol.file.Handler.openConnection(Unknown Source)
    	at java.net.URL.openConnection(Unknown Source)
    	at sun.applet.AppletPanel.getAccessControlContext(Unknown Source)
    	at sun.applet.AppletPanel.getClassLoader(Unknown Source)
    	at sun.applet.AppletPanel.createAppletThread(Unknown Source)
    	at sun.applet.AppletPanel.init(Unknown Source)
    	at sun.plugin.AppletViewer.appletInit(Unknown Source)
    	at sun.plugin.viewer.LifeCycleManager.initAppletPanel(Unknown Source)
    	at sun.plugin.viewer.IExplorerPluginObject$Initer.run(Unknown Source)
    Avec aucune référence à mes propres classes, je vois pas comment ça se fait

  4. #4
    Membre expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Points : 3 675
    Points
    3 675
    Par défaut
    j'avais ce genre de problème aussi....

    essaie de déplacer ton applet (place le répertoire sur le bureau) et relance...

    en fait, je crois que cela vient des différents droits NTFS. J'avais copié mon applet à un autre endroit sur mon disque et là plus de problème...

    Si ça se trouve, il s'agit d'un bug de Java
    "Le plug gros problème des citations trouvées sur internet, c'est qu'on ne peut jamais garantir leur authenticité"

    Confucius, 448 av. J-C

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 15
    Points : 12
    Points
    12
    Par défaut
    Alors ça... c'est à peine croyable

    J'ai essayé plusieurs répertoires, et depuis le répertoire racine du sdk, ça marche !

    Par chance, ça marche aussi lorsque la page est chargée depuis un serveur web, et c'est justement ce qu'il me fallait

    Merci beaucoup Pill_S ! Tu m'ôtes une fière chandelle du pied

  6. #6
    Membre expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Points : 3 675
    Points
    3 675
    Par défaut
    de rien

    mais ce serait quand même bien de trouver la vraie raison du bug...
    "Le plug gros problème des citations trouvées sur internet, c'est qu'on ne peut jamais garantir leur authenticité"

    Confucius, 448 av. J-C

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 15
    Points : 12
    Points
    12
    Par défaut
    A tous les coups c'est une histoire tordue de classpath en rapport avec la machine virtuelle lorsqu'elle est utilisée depuis un navigateur.

    En tous cas, le fait que ça ne marche que depuis des répertoires à forte consonnance javaesque (tel que le répertoire source du jdk) ou depuis le cache du navigateur (soit les temporary internet files dans mon cas, sous windows) me fait pencher pour cette hypothèse, bien que ça ne reste qu'une hypothèse

  8. #8
    Membre expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Points : 3 675
    Points
    3 675
    Par défaut
    mmmmh tu crois pas qu'un problème de PATH devrait plutôt renvoyer une "ClassNotFoundException" qu'une "IllegalArgumentException" ?

    moi le truc, ça ne marchait pas dans "Mes Documents" (disque D:\, auquel j'avais modifié les droits NTFS en fonction des utilisateurs) et ça marchait sur mon bureau (disque C:\, aucune modif des droits NTFS)

    ensuite, j'ai entièrement formaté mon ordi et recrée l'intégralité de mon arborescence de répertoires, et là ça marchait partout....

    "Le plug gros problème des citations trouvées sur internet, c'est qu'on ne peut jamais garantir leur authenticité"

    Confucius, 448 av. J-C

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 15
    Points : 12
    Points
    12
    Par défaut
    En fait la machine virtuelle a l'air de charger des classes à elle pour pouvoir charger une applet lorsqu'on utilise la JVM du jdk avec IE par exemple.
    Si on utilise la JVM de base, comme cela se passerait sur un système où le jdk n'est pas installé, le message qui apparaît dans la barre de statut du navigateur est bien du type "class not found".

    Je pense que la JVM de la jdk plante sur une de ses classes qui essaie de charger l'applet avec probablement une méthode utilisant la réflexion.

    Si tu regardes la trace du plantage dans la JVM que j'ai reporté plus haut, ya quand-même des méthodes bien louches

    Enfin, en tous cas, je n'ai pas changé les droits d'aucun des disques/dossiers de mon système (sous WinXP) et je ne vois pas de rapport direct avec un changement de droits, pour ce qui est de mon système en tous cas.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 20/04/2012, 12h05
  2. Créer un fichier .jar d'une applet sous netbeans
    Par Lyuna dans le forum NetBeans
    Réponses: 2
    Dernier message: 29/11/2009, 22h35
  3. Réponses: 3
    Dernier message: 24/11/2006, 11h12
  4. [Image] charger une image depuis un fichier xml.
    Par Invité dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 21/11/2006, 14h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo