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 :

Exécuter une classe à l'intérieur d'une autre classe


Sujet :

avec Java

  1. #1
    Membre du Club
    Inscrit en
    Novembre 2010
    Messages
    80
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 80
    Points : 54
    Points
    54
    Par défaut Exécuter une classe à l'intérieur d'une autre classe
    Bonjour,
    Premièrement merci pour ce forum et pour votre contribution
    deuxièmement svp est ce que vous pouvez m'aider sur un petit problème j'ai un algorithme(classe java ) écrit en java et qui utilise deux fichiers texte pour s’exécuter,ce que je veux moi c'est l’exécution de cette classe java(algorithme ) dans une autre classe java

    svp svp si vous pouvez m'aider je serai vraiment reconnaissant en vers vous

    merci d'avance

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Hello,

    En supposant que la classe que tu as actuellement soit appelée Premiere et ressemble à ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public class Premiere {
     
      public static void depart() {
        // des instructions
      }
     
    }
    Et que son exécution commence avec sa méthode depart(),

    alors il suffit de l'instruction :

    dans ton autre classe, pour appeler la première.


    Si ces suppositions sont erronées, eh bien c'est parce que tu ne nous as pas montré ton code. Ça ne doit jamais arriver. Tu dois toujours montrer ton code.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre du Club
    Inscrit en
    Novembre 2010
    Messages
    80
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 80
    Points : 54
    Points
    54
    Par défaut
    Citation Envoyé par thelvin Voir le message
    Hello,

    En supposant que la classe que tu as actuellement soit appelée Premiere et ressemble à ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public class Premiere {
     
      public static void depart() {
        // des instructions
      }
     
    }
    Et que son exécution commence avec sa méthode depart(),

    alors il suffit de l'instruction :

    dans ton autre classe, pour appeler la première.


    Si ces suppositions sont erronées, eh bien c'est parce que tu ne nous as pas montré ton code. Ça ne doit jamais arriver. Tu dois toujours montrer ton code.
    Merci bien thelvin pour l’intérêt que tu portes a mon problème
    je vais détailler mon problème
    je ne suis pas un programmeur java et je j'ai un travaille urgent a faire qui est le suivant:
    j'ai un algorithme apriori son code se trouve
    http://www2.cs.uregina.ca/~dbd/cs831...set_prog1.html
    qd j’exécute cet algorithme en ligne de commande je met l'algorithme et deux fichiers texte config.txt,transa.txt dans le meme dossier, l'algorithme s’exécute très bien

    maitenant moi je veux exécuter cet algorithme dans une classe et plus precisement dans le bloc TRY,son code est :
    /*
    * To change this template, choose Tools | Templates
    * and open the template in the editor.
    */
    package jadeproject;

    import jade.core.Agent;
    import jade.core.behaviours.*;
    import java.util.Arrays;
    import java.util.Observable;
    import java.util.Observer;
    import java.util.logging.Level;
    import java.util.logging.Logger;
    import sun.management.resources.agent;


    public class JadeProject extends Agent {

    /**
    * @param args the command line arguments
    */
    protected void setup() {
    // Printout a welcome message
    System.out.println("Hello! agent "+getAID().getName()+" is ready.");
    //addBehaviour(new behaviour1(this));

    try {
    !!!!!!!c'est la ou je veux executer mon algorithme
    } catch (Exception ex) {
    Logger.getLogger(JadeProject.class.getName()).log(Level.SEVERE, null, ex);
    }
    }

    public void update(Observable o, Object arg) {
    System.out.println(Arrays.toString((int[])arg));
    }
    //class behaviour1 extends SimpleBehaviour
    // {

    //}

    }

    mais je ne sais pas comment faire un appel a mon algorithme et ou dois je mettre mais deux fichiers texte
    cet algorithme va generer un fichier text lors de son execution

    Merci d'avance

  4. #4
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    C'est pas aussi simple. Le code que tu pointe (APriori.java) dispose d'un algorithme mal séparé de l'interface utilisateur. Il pose des questions en ligne de commande, par exemple, présuppose que les fichiers sont dans le répertoire courant, etc.

    A partir de là, tu as deux possibilité

    1) tu fais "comme si on l'avait lancé à la main", dans ce cas, tu n'a qu'à recopier le code qui se trouve dans le main du projet concerné, et ça marchera à l'identique
    2) tu ne peux pas interagir avec l'utilisateur: dans ce cas tu est bon pour commencer par nettoyer le code en question de tous les appels à System.in ou au Scanner, pour rendre les noms des fichiers configurables, etc. Ca nécessite évidement d'apprendre les bases de java pour ne pas faire n'importe quoi. Ca ne nécessite pas non plus des connaissance de haut vol.

  5. #5
    Membre du Club
    Inscrit en
    Novembre 2010
    Messages
    80
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 80
    Points : 54
    Points
    54
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    C'est pas aussi simple. Le code que tu pointe (APriori.java) dispose d'un algorithme mal séparé de l'interface utilisateur. Il pose des questions en ligne de commande, par exemple, présuppose que les fichiers sont dans le répertoire courant, etc.

    A partir de là, tu as deux possibilité

    1) tu fais "comme si on l'avait lancé à la main", dans ce cas, tu n'a qu'à recopier le code qui se trouve dans le main du projet concerné, et ça marchera à l'identique
    2) tu ne peux pas interagir avec l'utilisateur: dans ce cas tu est bon pour commencer par nettoyer le code en question de tous les appels à System.in ou au Scanner, pour rendre les noms des fichiers configurables, etc. Ca nécessite évidement d'apprendre les bases de java pour ne pas faire n'importe quoi. Ca ne nécessite pas non plus des connaissance de haut vol.
    vraiment merci pour avoir répondu a ma question
    j'ai choisi la deuxième possibilité mais j'aurai vraiment besoin de vous pour le guider en fait je n'est pas besoin d'interaction avec l'utilisateur donc on commence par quoi pour nettoyer ce code je suis sur motivé

  6. #6
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Ben faut retirer tout les code qui pose des question. Du coup tu dois adapter parce que les information que l'utilisateur ne fournis plus, tu va bien devoir les fournir d'une autre manière.

  7. #7
    Membre du Club
    Inscrit en
    Novembre 2010
    Messages
    80
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 80
    Points : 54
    Points
    54
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    Ben faut retirer tout les code qui pose des question. Du coup tu dois adapter parce que les information que l'utilisateur ne fournis plus, tu va bien devoir les fournir d'une autre manière.
    Donc avec un peu de logique je vais supprimer deux methodes
    public static String getInput() et private void getConfig()
    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
    /************************************************************************
         * Method Name  : getInput
         * Purpose      : get user input from System.in
         * Parameters   : None
         * Return       : String value of the users input
         *************************************************************************/
        public static String getInput()
        {
            String input="";
            //read from System.in
            BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
     
            //try to get users input, if there is an error print the message
            try
            {
                input = reader.readLine();
            }
            catch (Exception e)
            {
                System.out.println(e);
            }
            return input;
        }
    et

    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
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
     /************************************************************************
         * Method Name  : getInput
         * Purpose      : get user input from System.in
         * Parameters   : None
         * Return       : String value of the users input
         *************************************************************************/
        public static String getInput()
        {
            String input="";
            //read from System.in
            BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
     
            //try to get users input, if there is an error print the message
            try
            {
                input = reader.readLine();
            }
            catch (Exception e)
            {
                System.out.println(e);
            }
            return input;
        }
     
        /************************************************************************
         * Method Name  : getConfig
         * Purpose      : get the configuration information (config filename, transaction filename)
         *              : configFile and transaFile will be change appropriately
         * Parameters   : None
         * Return       : None
         *************************************************************************/
        private void getConfig()
        {
            FileWriter fw;
            BufferedWriter file_out;
     
            String input="";
            //ask if want to change the config
            System.out.println("Default Configuration: ");
            System.out.println("\tRegular transaction file with '" + itemSep + "' item separator.");
            System.out.println("\tConfig File: " + configFile);
            System.out.println("\tTransa File: " + transaFile);
            System.out.println("\tOutput File: " + outputFile);
            System.out.println("\nPress 'C' to change the item separator, configuration file and transaction files");
            System.out.print("or any other key to continue.  ");
            input=getInput();
     
            if(input.compareToIgnoreCase("c")==0)
            {
                System.out.print("Enter new transaction filename (return for '"+transaFile+"'): ");
                input=getInput();
                if(input.compareToIgnoreCase("")!=0)
                    transaFile=input;
     
                System.out.print("Enter new configuration filename (return for '"+configFile+"'): ");
                input=getInput();
                if(input.compareToIgnoreCase("")!=0)
                    configFile=input;
     
                System.out.print("Enter new output filename (return for '"+outputFile+"'): ");
                input=getInput();
                if(input.compareToIgnoreCase("")!=0)
                    outputFile=input;
     
                System.out.println("Filenames changed");
     
                System.out.print("Enter the separating character(s) for items (return for '"+itemSep+"'): ");
                input=getInput();
                if(input.compareToIgnoreCase("")!=0)
                    itemSep=input;
     
     
            }
     
            try
            {
                 FileInputStream file_in = new FileInputStream(configFile);
                 BufferedReader data_in = new BufferedReader(new InputStreamReader(file_in));
                 //number of items
                 numItems=Integer.valueOf(data_in.readLine()).intValue();
     
                 //number of transactions
                 numTransactions=Integer.valueOf(data_in.readLine()).intValue();
     
                 //minsup
                 minSup=(Double.valueOf(data_in.readLine()).doubleValue());
     
                 //output config info to the user
                 System.out.print("\nInput configuration: "+numItems+" items, "+numTransactions+" transactions, ");
                 System.out.println("minsup = "+minSup+"%");
                 System.out.println();
                 minSup/=100.0;
     
                oneVal = new String[numItems];
                System.out.print("Enter 'y' to change the value each row recognizes as a '1':");
                if(getInput().compareToIgnoreCase("y")==0)
                {
                    for(int i=0; i<oneVal.length; i++)
                    {
                        System.out.print("Enter value for column #" + (i+1) + ": ");
                        oneVal[i] = getInput();
                    }
                }
                else
                    for(int i=0; i<oneVal.length; i++)
                        oneVal[i]="1";
     
                //create the output file
                fw= new FileWriter(outputFile);
                file_out = new BufferedWriter(fw);
                //put the number of transactions into the output file
                file_out.write(numTransactions + "\n");
                file_out.write(numItems + "\n******\n");
                file_out.close();
            }
            //if there is an error, print the message
            catch(IOException e)
            {
                System.out.println(e);
            }
        }
    tchize Si je suis dans la bonne direction normalement la prochaine étape est d'indiquer a la classe apriori ou elle peut trouver l'emplacement des deux fichiers config.txt et transa.txt

    Merci d'avance pour ton aide tchize

  8. #8
    Membre du Club
    Inscrit en
    Novembre 2010
    Messages
    80
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 80
    Points : 54
    Points
    54
    Par défaut
    Svp j'aimerai bien avoir de l'aide !

  9. #9
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Sur quoi tu coince maintenant?

Discussions similaires

  1. Réponses: 3
    Dernier message: 10/10/2013, 11h11
  2. Classe à l'intérieur d'une classe ?
    Par hsoussou dans le forum Débuter
    Réponses: 12
    Dernier message: 14/01/2009, 13h23
  3. Réponses: 6
    Dernier message: 14/12/2008, 02h12
  4. Instance de classe à l'intérieur d'une autre
    Par cobolfingaz dans le forum C#
    Réponses: 12
    Dernier message: 17/01/2008, 11h25
  5. Réponses: 5
    Dernier message: 15/05/2007, 20h51

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