appeler un fichier java depuis un autre fichier java

Gefrey
appeler un fichier java depuis un autre fichier java

Salut
Je cherche a appeler un fichier java depuis un autre fichier java. en faite je suis dans le fichier Manager.java et j'aimerai depuis ce fichier lancer le programme qui se situe dans le fichier CSVfile.java.
Est avec la methode init()?
Geoffrey

fredericmazue

bonsoir,

Quote:
Manager.java

Tu parles comme si on avait ton code sous les yeux.
Manage.java, je n'ai pas l'honneur de connaître?

"lancer un programme" dis tu ?
Je me demande un peu si tu as une idée bien claire de ce que tu as l'intention de faire. Peut être veux tu simplement charger une classe ? Si oui c'est avec lava.lang.ClassLoader que ça se fait.

En espérant avoir répondu à ta question

Gefrey

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

fredericmazue

stp, ne parle pas comme si on était chez toi pour voir ce qui ce passe.

Quote:
FileReader fileReader = new FileReader(path); Lorsque j'arrive a cette ligne ca plante pourquoi?

Et alors, ça plante comment :?: :?:
En plus (je devrais dire en moins..;) ) pas un mot pour dire si la première réponse t'a aidé, et évidemment pas de merci...

Faire un petit effort de précision et de courtoisie en posant une question sur un forum c'est:
- une marque de respect pour ceux qui vont essaier de t'aider.
- une aide pour toi même car mieux la question est posée, plus tu as de chance de voir ton problème résolu.

Cela dit, dans le premier extrait de code je vois une exception complètement muselée. (FileNotFoundException) hum mauvaise pratique ça. En l'occurence, on ne sait pas si le path transmis est valide ou pas.

J'ai envie de penser que non et que du coup sous déboggueur tu vois le flux d'exécution qui "saute" et tu appelles ça planter. Et comme l'exception est muselée, le programme essayer de continuer et ça ne peut pas marcher au final.

Ce que je dis n'est qu'une hypothèse, mais vraisemblable au vu du peu d'éléments que tu donnes.

Gefrey

C'est vraiment incroyable comme l'informaticien est irritable... A chaque fois que je pose une question (sur different forum) je me fais engueuler pour une raison ou pour une autre...

Bref, j'ai reussi a trouve ce que je cherchais. Maintenant j'aimerais recuperer les informations de mon fichier CSV. Dans quel variable je les trouve? Il me semble que c'est avec le vector mais je ne sias pas comment je peux l'utiliser. Je te donne le code pour lire le fichier CSV:

package flexcom.calltax.service.impl;

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;

import flexcom.calltax.core.ExceptionHandler;

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();
System.out.println(path);
System.out.println(m_fileContent);
try{
FileReader fileReader = new FileReader(path);

readFromFile(fileReader);
fitVectorsToSize();


}catch(FileNotFoundException e){
ExceptionHandler.notify(e, CSVFile.class);
}
}

/**
* 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() {
//m_rowsCount
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 "";
}
}
}

MERCI.

fredericmazue

Quote:
C'est vraiment incroyable comme l'informaticien est irritable...

Meuh non :)

Quote:
A chaque fois que je pose une question (sur different forum) je me fais engueuler pour une raison ou pour une autre...

Je n'en suis pas surpris. Si ça t'arrive aussi souvent, p'tet ben que tu y es pour quelque chose. Enfin c'est toi qui voit.

Quote:
Bref, j'ai reussi a trouve ce que je cherchais.

Et qui était ? Ca a un rapport avec le message précédent ?
Moi je ne dis rien là, mais je parie que sur un autre forum tu te ferais engueuler ;)

Quote:
Maintenant j'aimerais recuperer les informations de mon fichier CSV. Dans quel variable je les trouve? Il me semble que c'est avec le vector mais je ne sias pas comment je peux l'utiliser. Je te donne le code pour lire le fichier CSV:

Je suis navré mais ta question est incompréhensible
Quel Vector ? Rien qu'en parcourant le code j'en vois au moins trois différents. Bon il y en a un qui est mieux que les autres m_fileContent.

Tiens au fait, la méthode getData elle ferait pas des fois ce que tu veux ? Tu te fous pas un peu du monde des fois ? Tu serais pas en train de demander de l'aide dans autant de forums que possible jamais chercher toi même ? Non c'est pas ça dis hein ?

Ah zut, ça y est, je me suis irrité et je t'ai engueulé.
Qu'est-ce qu'ils sont irritables ces informaticiens

:lol:

Gefrey

C'est ca continue de faire le loubard derierre ton PC... Je pense qu'il faut que t'arrete de prendre la grosse tete...

fredericmazue

T'as raison :)

Je sors ->[]