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 :

Problème code applet (hériter JApplet)


Sujet :

Applets Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 3
    Par défaut Problème code applet (hériter JApplet)
    Bonjour !

    Je vous explique mon problème : je ne m’y connais pas du tout en Java mais pour les besoins de l’école il faut que je puisse lancer un exe depuis une page web. J’ai donc pensé aux applets java. J’ai fait quelques recherches et je suis arrivée à ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    import java.applet.* ;
    import java.awt.* ;
    import java.io.*;
     
    public class Exec
    {
      public static void main(String[] args)
      {
        String cmd;
            cmd = "c:/Program Files/AnmSMP/AnmanieSMP.exe";
     
        try
        {
          Runtime r = Runtime.getRuntime();
          Process p = r.exec(cmd);
          p.waitFor();
        }
        catch(Exception e)
        {
          System.out.println("erreur d'execution " + cmd + e.toString());
        }
       }
    }
    Manque de chance on m’a dit que ça ne pourrait jamais marcher car il faut hériter de JApplet et donc ne pas avoir de méthode « main ». J’ai essayé de changer quelques trucs mais je suis tombée que sur des erreurs. Quelqu’un aurait il une piste pour m’aider à change mon code svp ?

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 68
    Par défaut
    Il me semble que pour prétendre à être une applet, il faudrait que ta classe Exec hérite de Applet (voire JApplet). il te suffit donc juste d'écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public class Exec extends Applet{
    car tu importes les libraires Applet mais tu ne les utilises pas !

    Ensuite, pour que ta commande soit lancée au lancement de ton applet, tu peux remplacer ta méthode main par un override (réécriture) de la méthode init de l'applet. Cette méthode est appelée au lancement de l'applet.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    public void init(){
    String cmd = ;
    //etc.
     
    }
    Enfin, pour éxécuter des commandes système, je pense que tu auras besoin de signer ton applet, pour qu'elle demande à l'utilisateur si elle a le droit d'acceder à ses fichiers. Sinon tu risques d'être confrontée à des barrières de sécurité...

  3. #3
    Membre expérimenté
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 282
    Par défaut
    Par contre pour utiliser un .exe il va te falloir utiliser et définir une politique de sécurité, renseigne toi sur ce point. (applet signé).

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 3
    Par défaut
    Bonjour

    Déjà merci beaucoup pour vos réponses ça m’a beaucoup aidée même si j’ai encore un petit problème. J’ai changé mon code en ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    import java.applet.* ;
    import java.awt.* ;
    import java.io.*;
     
    public class Exec extends Applet 
    {
      public void init ()
      {
        String cmd = "c:/Program Files/AnmSMP/AnmanieSMP.exe";
     
        try
        {
          Runtime r = Runtime.getRuntime();
          Process p = r.exec(cmd);
          p.waitFor();
        }
        catch(Exception e)
        {
          System.out.println("erreur d'execution " + cmd + e.toString());
        }
       }
    }
    Puis je l’ai signé et intégré à ma page web avec ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <html>
    <head>
    <title>Applet</title>
    </head>
    <body>
    <APPLET code= "Exec.class" archive="SExec.jar" width=600 height=600 ></APPLET>
    </body>
    </html>
    Manque de chance, mon programme se met bien en route mais pas dans ma page web. Je m’explique, je croyais que normalement mon programme allait s’ouvrir dans ma page web et non pas en dehors comme il le fait. J'ai fait une petite capture d'écran pour mieux me faire comprendre : http://buddy6.free.fr/ExempleForum.jpg Quelqu’un a-t-il une idée de ce que je pourrais changer ou alors c’est normal ?

    Edit : J'ai compris d'ou venais le problème, , c’est que runtime r = … lance le processus dans Windows et non dans un navigateur. Je me demandais donc si on pouvait changer cela : faire que mon programme s’ouvre dans mon applet. Ou alors est-ce possible de rédiger la sortie vers le navigateur ?

  5. #5
    Membre expérimenté
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 282
    Par défaut
    euh ... je ne pense pas qu'il soit possible d'ouvrir un éditeur de texte comme notepad++ directement dans le navigateur ... à confirmer mais ...

Discussions similaires

  1. Réponses: 2
    Dernier message: 02/08/2006, 17h21
  2. [Problème code] Afficher/Masquer div
    Par glloq8 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 24/03/2006, 14h18
  3. [Débutant] Probléme dans applet
    Par brionne dans le forum Applets
    Réponses: 1
    Dernier message: 29/08/2005, 11h53
  4. [debutant][Applet] problèmes insertion applet java
    Par mlequim dans le forum Applets
    Réponses: 5
    Dernier message: 11/07/2005, 09h50

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