Appeler un programme java depuis un autre fichier java

Signaler
Messages postés
14
Date d'inscription
vendredi 17 février 2006
Statut
Membre
Dernière intervention
28 mars 2008
-
Messages postés
5351
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
17 août 2020
-
salut
Je cherche a executer un programme depuis un fichier java qui se situe dans un autre fichier java. dois-je utiliser la methode init()?
En faite le premier fichier s'appelle manager.java et je veux executer un programme dans le fichier CSVFile.java...
Merci de votre aide.
A voir également:

10 réponses

Messages postés
545
Date d'inscription
lundi 10 mai 2004
Statut
Membre
Dernière intervention
28 septembre 2011
2
En gros, tu as deux classes avec une méthode main et tu veux appeler un main depuis le deuxième, c'est ça ? Dans ce cas :






public class Manager {
    String[] args2;
    public static void main(String[] args) {
           /**

             * Code divers et varié

             */
      
       CSVFile.main(args2);
      
           /**

             * Code divers et varié

             */
    }
}
Messages postés
14
Date d'inscription
vendredi 17 février 2006
Statut
Membre
Dernière intervention
28 mars 2008

en faite je suis dans un programme et je voudrais en appeler un autre. en c c'est l'instruction call mais en java c pas ca...
ca fait
public class Manager{

code
appel du fichier CSVFile pour en executer le programme.

}
Messages postés
545
Date d'inscription
lundi 10 mai 2004
Statut
Membre
Dernière intervention
28 septembre 2011
2
Donc c'est bien ce que je t'ai mis, puisque tu cherches à executer le code du fichier CSVFile.
Messages postés
14
Date d'inscription
vendredi 17 février 2006
Statut
Membre
Dernière intervention
28 mars 2008

ok mais j'ai pas de main dans le programmme CSVFile.... En faite c'est un programme que j'ai telecharger sur internet et j'essais de l'integrer a un autre programme. Voici le fichier CSV:
et y a pas de main malheuresement...
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Reader;
import java.io.Writer;
import java.util.Vector;

/**
 * @author Glob
 * @version 0.1
 */
public class CSVFile {

   private int m_rowsCount;
   private int m_colsCount;
   private Vector m_fileContent;
   private final static char CELL_SEPARATOR = ';';

   /**
    * Method CSVFile.
    * @param path le chemin du fichier à parser.
    * @throws FileNotFoundException si le fichier spécifié n'existe pas.
    */
   public CSVFile(String path) throws FileNotFoundException {
      m_fileContent = new Vector();
      FileReader fileReader = new FileReader(path);
      readFromFile(fileReader);
      fitVectorsToSize();
   }

   /**
    * Method CSVFile.
    * @param reader un reader dans lequel on lit le fichier CSV.
    */
   public CSVFile(Reader reader) {
      m_fileContent = new Vector();
      readFromFile(reader);
      fitVectorsToSize();
   }

   private void fitVectorsToSize() {
      m_fileContent.setSize(getRowsCount());
      int fileSize = getRowsCount();
      int colCount = getColsCount();
      for (int i = 0; i < fileSize; i++) {
         Vector aRow = (Vector)m_fileContent.get(i);
         if (aRow == null) {
            m_fileContent.set(i, new Vector());
            aRow = (Vector)m_fileContent.get(i);
         }
         aRow.setSize(colCount);
      }
   }

   /**
    * Method readFromFile.
    * @param path
    */
   private void readFromFile(Reader reader) {
      BufferedReader buffReader = new BufferedReader(reader);
      if (buffReader != null) {
         try {
            String tempLine;
            tempLine = buffReader.readLine();
            while (tempLine != null) {
               readFromLine(tempLine);
               tempLine = buffReader.readLine();
            }
         } catch (IOException e) {
            System.err.println("Error reading CSV file: " + e.toString());
         } finally {
            try {
               buffReader.close();
            } catch (IOException e) {
               System.err.println(
                  "Erreur closing CSV file: "
                  + e.toString()
               );
            }
         }
      }
      System.runFinalization();
      System.gc();
   }

   /**
    * Method readFromLine.
    * @param tempLine
    */
   private void readFromLine(String tempLine) {
      if (tempLine == null) {
         return;
      }
      Vector currentLine = new Vector();
      m_fileContent.add(currentLine);
      m_rowsCount++;
//      setRowsCount(getRowsCount() + 1);
      if (tempLine.trim().length() == 0) {
         return;
      }
      int colCount = 0;
      int cursorBegin = 0;
      int cursorEnd = tempLine.indexOf(CELL_SEPARATOR);
      while (cursorBegin > -1) {
         if (cursorEnd == -1) {
            currentLine.add(tempLine.substring(cursorBegin));
            cursorBegin = cursorEnd;
         } else {
            currentLine.add(tempLine.substring(cursorBegin, cursorEnd));
            cursorBegin = cursorEnd + 1;
         }
         cursorEnd = tempLine.indexOf(CELL_SEPARATOR, cursorBegin);
         colCount++;
      }
      if (colCount > getColsCount()) {
         setColsCount(Math.max(getColsCount(), colCount));
      }
   }

   /**
    * Returns the colsCount.
    * @return int
    */
   public int getColsCount() {
      return m_colsCount;
   }

   /**
    * Returns the rowsCount.
    * @return int
    */
   public int getRowsCount() {
      return m_rowsCount;
   }

   /**
    * Sets the colsCount.
    * @param colsCount The colsCount to set
    */
   public void setColsCount(int colsCount) {
      m_colsCount = colsCount;
      fitVectorsToSize();
   }

   /**
    * Sets the rowsCount.
    * @param rowsCount The rowsCount to set
    */
   public void setRowsCount(int rowsCount) {
      m_rowsCount = rowsCount;
      fitVectorsToSize();
   }

   /**
    * Method getData.
    * @param row la ligne voulue
    * @param col la colonne voulue
    * @return String la valeur à l'enplacement spécifié. Null si outOfBound.
    */
   public String getData(int row, int col) {
      if (row < 0
         || col < 0
         || row > (getRowsCount() - 1)
         || col > (getColsCount() - 1)) {
         return null;
      }
      try {
         Vector theRow = (Vector)m_fileContent.get(row);
         String result = (String)theRow.get(col);
         return (result == null ? "" : result);
      } catch (IndexOutOfBoundsException e) {
         return "";
      }
   }
Messages postés
545
Date d'inscription
lundi 10 mai 2004
Statut
Membre
Dernière intervention
28 septembre 2011
2
Snas vouloir te vexer, c'est un problèmes de bases du langage qui te font défaut là :/

Il te faut crée un objet de type CSVFile et appeler ensuite des méthodes sur celui-ci. Pour les dtails, je te conseille vivement de lire quelques tutoriaux qui trainenet sur le Net.
Messages postés
14
Date d'inscription
vendredi 17 février 2006
Statut
Membre
Dernière intervention
28 mars 2008

oui c'est clair c la base mais je faisait plus de java en J2ME et j'ai ete embauché pour faire du J2EE donc c galere. Mais merci de ton aide...
Messages postés
764
Date d'inscription
mardi 25 mai 2004
Statut
Membre
Dernière intervention
8 mars 2011
8
Yop yop,

c est clair que c est pas clair :D.
Je me demande si tu veux pas lancer deux programmes java totalement distincts (genre chacun sa JVM) dans ce cas System.getRuntime().exec("mon prog"); (ca doit etre un truc dans le genre).
Sinon si c est juste utiliser des méthodes de CSVFile la je rejoins totalement gmi19oj19 faut revoir un peu les bases.

++ Toinou
Messages postés
5351
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
17 août 2020
97
Salut,

"c'est clair c la base mais je faisait plus de java en J2ME"
Heu J2ME ou J2EE ou encore J2SE c'est la meme,  les instanciation d'objet existe toujours et sont toujours ennormément utilisé ...........

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
Messages postés
14
Date d'inscription
vendredi 17 février 2006
Statut
Membre
Dernière intervention
28 mars 2008

C bon j'ai ruessi ce que je voulais cependant j'ai une autre erreur.
J'arrive a passe du fichier Manager au fichier CSVFile mais le deuxieme plante:

public synchronized void doReport(PrintStream log, Date aDate) throws LicenseViolationException {
        System.out.println("fichier en cours de loadage(doreport)");
        notifyEvent(new flexcom.calltax.core.event.EventObject(flexcom.calltax.core.event.EventObject.Type.NOTIFICATION, "running", this.getClass(), this));
        Trace.info(this.getClass(),"starting user report service");
        String path = new String ("C:\\workspace\\calltaxDev\\data\\import\\CSV");
        try{
        CSVFile ManagerReporterService = new CSVFile(path);}
        catch (FileNotFoundException e){
        }


et dans le fichier CSVFile:

  public CSVFile(String path) throws FileNotFoundException {

       m_fileContent = new Vector();
       System.out.println(path);
      FileReader fileReader = new FileReader(path);
      readFromFile(fileReader);
      fitVectorsToSize();
   }

FileReader fileReader = new FileReader(path); Lorsque j'arrive a cette ligne ca plante pourquoi?
Merci
Messages postés
5351
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
17 août 2020
97
Salut,

c'est quoi l'erreur ?

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA