Je sollicite votre haute bienveillance pour m'aider sur un problème technique qui m'empêche d'avancer.
En gros, j'ai besoin de votre aide. Voici le contexte:
J'ai développé un GUI, qui utilise une classe nommée Traitement (code ci après) en java. Cette classe exécute un script me permettant de récupérer des sources sur un serveur CVS. Je sais qu'il existe des librairies CVS pour java, mais je n'ai pas envie de les tâter. Lors d'un clic sur un bouton de mon interface, je lance la méthode, en lui pasasnt en paramètre ce qu'il lui faut. L'exécution se lance, mais se bloque au bout d'un tout petit moment, et je ne recupère pas toutes les sources (a peine 10 fichiers, sur 100 a peu près). Voici le code de la classe exécutant le script:
import java.io.*;
import javax.swing.*;
public class Traitements extends Thread {
private String projPath;
public static Process proc;
/** Constructeur par défaut de la classe Traitements */
public Traitements(String projPath) {
super();
this.projPath=projPath;
}
/*
*Méthode récupérant les sources d'un projet à partir de cvs
*Stocke le projet dans un répertoire temporaire C:\ProjTemp
*@param projPath le nom complet du projet
*/
public void run(){
//exécuter le script recupProj projPath
String[] comm=new String[2];
comm[0]="D:\\DATA\\Essais\\recupProj.bat";
comm[1]=projPath;
try{
proc=Runtime.getRuntime().exec(comm);
BufferedReader in=new BufferedReader(new InputStreamReader(proc.getInputStream()));
String line="";
while((line=in.readLine())!=null){
System.out.println(line);
}
}catch (Exception e){
System.out.println("On est en exception de traitement");
System.out.println( e.getMessage());
}
}
}
et voici la méthode d'action du bouton:
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
if(projectChoice==null){
this.jTextPane1.setText("Veuillez sélectionner un projet");
}else{
String projPath="1_titulaire/"+projectChoice.substring(8); //on concatene 1_titulaire/ au nom de projet choisi
Traitements t=new Traitements(projPath);
t.start();
}
}
