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

avec Java Discussion :

Erreur d'exécution d'une applet signée


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Avatar de airod
    Homme Profil pro
    Gérant Associé, DMP Santé et Directeur technique
    Inscrit en
    Août 2004
    Messages
    767
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Gérant Associé, DMP Santé et Directeur technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 767
    Par défaut Erreur d'exécution d'une applet signée
    Bonjour,

    Tout d'abord posons le contexte.

    Je suis débutant en JAVA, et c'est vraiment mon premier projet.
    J'ai besoin pour un projet intranet web, d'intégrer un moyen de lancer une ligne de commande depuis une interface web.
    Seul moyen de le faire est de passer par la création d'une applet Java signée pour qu'elle soit autorisée à faire des action sur le poste client.

    J'ai donc créé un premier programme qui fonctionne bien tant que j'intègre le .class dans mes pages web, mais qui ne peut exécuter les commandes coté client du fait que je n'ai pas encore créé de .jar et signée mon appli.

    J'ai bien compris comment signé un .jar mais je n'ai pas réussis à le rendre éxécutable (problème de manifest et/ou de code)
    En effet lors de toute mes tentatives une erreur ressort :
    Exception in thread "main" java.lang.Error: Unresolved compilation problem:
    Cannot make a static reference to the non-static method init() from the
    type LanceAppli

    at LanceAppli.main(LanceAppli.java:21)
    Bien que je comprenne ce que ca veut dire je ne sais pas comment résoudre mon problème.
    ci après mon code java :
    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
     
    import java.applet.*;
    import java.awt.*; 
    import java.awt.event.*;
    import java.net.*;
     
    public class LanceAppli extends Applet implements TextListener, ActionListener {
     
    	/**
             * 
             */
    	private static final long serialVersionUID = -7712116006950478375L;
    	/**
             * @param args
             */
    	TextField login,pwd;
    	Button validation, annulation;
    	String commande,cmd;
     
     
    	public void init() {
     
    		// TODO Auto-generated method stub
    		if (getParameter("commande")!=null)
    		{
    		cmd=getParameter("commande") ;
    		}
    		else
    		{   
    			//annuler();
    			cmd="notepad";
    		}
     
    		if (cmd!=null){
    		setBackground(Color.orange);
    		add(new Label("Identifiant : "));
    		add(login = new TextField(20));
    		add(new Label("Mot de passe : "));
     
    		add(pwd = new TextField(20));
    		add(validation = new Button ("Valider"));
    		add(annulation = new Button ("Annuler"));
    		validation.addActionListener(this);
    		annulation.addActionListener(this);
     
    		}
     
     
     
    	}
     
    	public void actionPerformed(ActionEvent e) {
    		commande = e.getActionCommand();
     
    		if (commande.equals("Valider"))
    		{
    			valider();
    		}
    		else
    		{
    			annuler();
    		}
     
     
    	}
     
    	public void valider() 
    	{
     
    		try {  
    			Runtime.getRuntime().exec(cmd);  
    			} catch (Exception e)
    			{
    				try
    				{
    					getAppletContext().showDocument(new URL("javascript:console.log("+e.getMessage()+")"));
    				}
    				catch (MalformedURLException me) { }
    			}
     
    		try {
    		      getAppletContext().showDocument
    		        (new URL("javascript:LANCEAPPLI.valider('valider')"));
    		      }
    		    catch (MalformedURLException me) { }
     
    	}
    	public void annuler()
    	{
    		try {
    		      getAppletContext().showDocument
    		        (new URL("javascript:LANCEAPPLI.annuler('annuler')"));
    		      }
    		    catch (MalformedURLException me) { }
    	}
     
    	public void textValueChanged(TextEvent e) {
    		// TODO Auto-generated method stub
     
    	}
     
    }
    Merci d'avance pour vos explications

  2. #2
    Membre chevronné Avatar de toutgrego
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2013
    Messages
    217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2013
    Messages : 217
    Par défaut
    Salut,

    on peut voir ton main ?

    tchao !

  3. #3
    Membre éclairé
    Avatar de airod
    Homme Profil pro
    Gérant Associé, DMP Santé et Directeur technique
    Inscrit en
    Août 2004
    Messages
    767
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Gérant Associé, DMP Santé et Directeur technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 767
    Par défaut
    je n'en avais pas mis,

    Comme ca?
    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    import java.applet.*;
    import java.awt.*; 
    import java.awt.event.*;
    import java.net.*;
     
    public class LanceAppli extends Applet implements TextListener, ActionListener {
     
    	/**
             * 
             */
    	private static final long serialVersionUID = -7712116006950478375L;
    	/**
             * @param args
             */
    	TextField login,pwd;
    	Button validation, annulation;
    	String commande,cmd;
     
    	public static void main(String[] args){}
     
    	public void init() {
     
    		// TODO Auto-generated method stub
    		if (getParameter("commande")!=null)
    		{
    		cmd=getParameter("commande") ;
    		}
    		else
    		{   
    			//annuler();
    			cmd="notepad";
    		}
     
    		if (cmd!=null){
    		setBackground(Color.orange);
    		add(new Label("Identifiant : "));
    		add(login = new TextField(20));
    		add(new Label("Mot de passe : "));
     
    		add(pwd = new TextField(20));
    		add(validation = new Button ("Valider"));
    		add(annulation = new Button ("Annuler"));
    		validation.addActionListener(this);
    		annulation.addActionListener(this);
     
    		}
     
     
     
    	}
     
    	public void actionPerformed(ActionEvent e) {
    		commande = e.getActionCommand();
     
    		if (commande.equals("Valider"))
    		{
    			valider();
    		}
    		else
    		{
    			annuler();
    		}
     
     
    	}
     
    	public void valider() 
    	{
     
    		try {  
    			Runtime.getRuntime().exec(cmd);  
    			} catch (Exception e)
    			{
    				try
    				{
    					getAppletContext().showDocument(new URL("javascript:console.log("+e.getMessage()+")"));
    				}
    				catch (MalformedURLException me) { }
    			}
     
    		try {
    		      getAppletContext().showDocument
    		        (new URL("javascript:LANCEAPPLI.valider('valider')"));
    		      }
    		    catch (MalformedURLException me) { }
     
    	}
    	public void annuler()
    	{
    		try {
    		      getAppletContext().showDocument
    		        (new URL("javascript:LANCEAPPLI.annuler('annuler')"));
    		      }
    		    catch (MalformedURLException me) { }
    	}
     
    	public void textValueChanged(TextEvent e) {
    		// TODO Auto-generated method stub
     
    	}
     
    }

  4. #4
    Membre chevronné Avatar de toutgrego
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2013
    Messages
    217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2013
    Messages : 217
    Par défaut
    En fait ce qu'il m’intéresse de savoir c'est comment lances tu ta méthode init(). Je crois que tu dois pas l'invoquer de la bonne façon c'est tout =)

  5. #5
    Membre chevronné Avatar de toutgrego
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2013
    Messages
    217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2013
    Messages : 217
    Par défaut
    Et ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    catch (XXXException m)x { }
    C'est à éviter dans TOUS les cas, tu ne sauras pas quel est ton erreur et d'où elle vient si il y a un problème. x)

  6. #6
    Membre très actif
    Profil pro
    Inscrit en
    Février 2010
    Messages
    766
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 766
    Par défaut
    main étant static, tu ne peux pas appeler init qui n'est pas static sans instancier l'objet.

Discussions similaires

  1. Réponses: 6
    Dernier message: 15/07/2010, 11h48
  2. Exécution d'une applet
    Par Adela dans le forum Applets
    Réponses: 1
    Dernier message: 03/04/2006, 07h04
  3. [MySQL] Message d'erreur à l'exécution d'une requête
    Par leloup84 dans le forum PHP & Base de données
    Réponses: 15
    Dernier message: 28/02/2006, 14h06
  4. Réponses: 2
    Dernier message: 08/08/2005, 21h30
  5. Message d'erreur à l'exécution d'une install
    Par titof dans le forum Autres Logiciels
    Réponses: 2
    Dernier message: 22/03/2005, 11h20

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