Lancer un program

papiejb72 Messages postés 73 Date d'inscription   Statut Membre Dernière intervention   -  
 papiejblt -

J'ai réalisé un program avec Visual Studio Code à partir du quel il fonctionne parfaitement.

J'ai voulu lancer ce program à partir de la CMD et là on me répond qu'il ne troue pas la main méthode.

<main methode not found in class>  alors quelle y existe bien.

est-ce que quelqu'un peut me dire pourquoi ?

Merci d'avance.

Cordialement.

ejb

5 réponses

yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 

bonjour, quel langage as-tu utilisé?

0
papiejb72 Messages postés 73 Date d'inscription   Statut Membre Dernière intervention  
 

java

0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 

Bonjour,

Est-ce ce que le nom du fichier compilé est bien le même que celui de la classe dans le code ?

De plus est-ce que tu as un package dans le code ? Dans ce cas il faut aussi que le fichier soit dans un dossier du même nom.

Quant à la méthode main il faut qu'elle soit public static avec un paramètre de type String[]

En cas de problème tu peux aussi nous montrer ton code pour que l'on t'aide plus précisément.


0
papiejblt
 

Bonjour,

Merci de venir à mon aide.

Mes fichiers son dans un code qui regroupe:

vscode

bin: les CLASS

src: les java

voici mon program d'appel:

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JOptionPane;

import javax.swing.JPanel;

import java.awt.*;

import java.awt.event.*;


 

public class JeuxDeTarot extends JFrame

{

   private static final long serialVersionUID = 1L;

   public JButton bStart, bPoints, bPoignee, bUnJoueur, bAnnuler;

   CanvasDeJoueur table;    

   public JeuxDeTarot()

   {

      setTitle("Jeux Tarot");

      getContentPane().setLayout(new BorderLayout());

      getContentPane().setBackground(Color.lightGray);

      setSize(250, 80);

      setLocation(10,5);

      setVisible(true);

      table = new CanvasDeJoueur();

      JPanel topPanel = new JPanel(new FlowLayout());

      bStart = new JButton("Nouvelle Partie");

      bPoints = new JButton("Points");

      bPoignee = new JButton("Poignee");

      bUnJoueur = new JButton("Un Joueur");

      bAnnuler = new JButton("Annuler");

      topPanel.add(bStart);

      topPanel.add(bPoints);

      topPanel.add(bPoignee);

      topPanel.add(bUnJoueur);

      topPanel.add(bAnnuler);

      bPoints.setEnabled(false);

      bPoignee.setEnabled(false);

      bUnJoueur.setEnabled(false);

      bAnnuler.setEnabled(false);

      bStart.addActionListener(new ActionListener(){

         @Override

         public void actionPerformed(ActionEvent e) {

            int recommencer = table.creerNouvellePartie();

            if(recommencer == JOptionPane.YES_OPTION){

               // ici on a recommence une nouvelle partie donc on peut

               // activer les boutons

               bPoints.setEnabled(true);

               bPoignee.setEnabled(true);

               bUnJoueur.setEnabled(true);        

            } else if (recommencer == JOptionPane.CANCEL_OPTION){

               // ici on a recommence une nouvelle partie mais on n'a pas complete

               // l'initialisation des joueurs ou la date donc les boutons doivent

               // etre desactive

               bPoints.setEnabled(false);

               bPoignee.setEnabled(false);

               bUnJoueur.setEnabled(false);        

               bAnnuler.setEnabled(false);        

            }

            // ici, rien ne c'est passe, on a annuler recommencer une nouvelle partie

            // donc on ne fait rien.

         }

      });

      bPoints.addActionListener(new ActionListener(){

         @Override

         public void actionPerformed(ActionEvent e) {

            String bouton = bPoints.getActionCommand();

            String points = (String) JOptionPane.showInputDialog("Joueurs, Points , contrat");

            table.addTour(points,bouton);

            // On regarde si on peut annuler une action maintenant. Si oui,

            // on active le bouton annuler

            if(table.peutAnnuler()){

               bAnnuler.setEnabled(true);

            }

         }

      });

      bPoignee.addActionListener(new ActionListener(){

         @Override

         public void actionPerformed(ActionEvent e) {

            // TODO Auto-generated method stub

           String bouton=bPoignee.getActionCommand();

           String points = (String) JOptionPane.showInputDialog("Joueurs, Points , contrat");

           table.addPoignee(points,bouton);

           if(table.peutAnnuler()){

            bAnnuler.setEnabled(true);

         }

         }

      } );

      bUnJoueur.addActionListener(new ActionListener(){

         @Override

         public void actionPerformed(ActionEvent e) {

            // TODO Auto-generated method stub

            String bouton=bUnJoueur.getActionCommand();

            String points = (String) JOptionPane.showInputDialog("Joueurs, Points , contrat");

            table.addUnJoueur(points,bouton);

            if(table.peutAnnuler()){

             bAnnuler.setEnabled(true);

          }

         }

      } );

      bAnnuler.addActionListener(new ActionListener(){

         @Override

         public void actionPerformed(ActionEvent e) {

            if(table.peutAnnuler()){

               table.annuler();

            } else {

               bAnnuler.setEnabled(false);

            }

         }

      } );

      getContentPane().add(topPanel, BorderLayout.NORTH);

      getContentPane().add(table, BorderLayout.CENTER);

      setDefaultCloseOperation(EXIT_ON_CLOSE);

      pack();

   }

}  

class TesterClicBoutonsE extends JFrame

{

   public static void main(String[] args)

   {

      new JeuxDeTarot();    

   }

}

Ai-je bien répondu à tes questions ?

Cordialement

EJB

0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 

Tout le code est dans le même fichier ?

Parce que tu as deux classes, la première qui est public et devrait être dans un fichier qui porte le même nom, et la seconde qui contient la méthode main.

Lorsque tu essaies de démarrer en ligne de commandes tu utilises quel nom de classe ? Et à partir de quel répertoire ?

Le plus logique serait d'avoir la classe TesterClicBoutonsE (qui n'a pas besoin d'extends JFrame) déclarée public dans son propre fichier et c'est cette classe qu'il faudrait appeler en ligne de commandes.

javac JeuxDeTarot.java
javac TesterClicBoutonsE.java
java TesterClicBoutonsE
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
papiejblt
 

Bonsoir

Je suis absent pour une semaine. Je ferai le test à mon retour;

Merci pour tes conseils, bonne semaine  toi.

EJB

0