Bonjour,

J'utilise un Process pour lancer un script perl.
J'ai testé avec succès cette partie de code sous windows.

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
try{
String commands = new String("perl + repertoireCourant.getAbsolutePath() + File.separator + "fichiers" + File.separator + "script.pl" + " " + "\"" + f + "\" " +
classe.getMethode1() + " " +
classe.getMethode2() + " " +
classe.getMethode3() + " " +
classe.getMethode4()
);
 
Process process = Runtime.getRuntime().exec(commands);
 
//  Attendre la fin
process.waitFor(); 
 
BufferedReader r = new BufferedReader(new InputStreamReader(process.getInputStream()));
 
System.out.println("commande = " + commands);
String resultat = new String(r.readLine());
do { 
      textAreaConcole.append(" $ " + resultat + "\n");	
      resultat = r.readLine();
} while (resultat != null);
 
}
 
catch (IOException e) {
        textAreaConcole.append("Erreur lors du lancement\n");
        e.printStackTrace();
}
seulement, sous linux, le script ne se lance pas. Pourtant quand je tape la commande passé en paramétre, elle fonctionne.
Ce script créer un fichier. Je me demande si ce n'est pas un problème de droit en écriture.
J'ai cherché longtemps et je ne trouve pas d'explications.

Merci d'avance pour vos réponses.