Bonjour à tous,
J'ai besoin d'executer un script php depuis du java. J'ai donc utilisé la classe Process de java comme ceci :
Sous windows, le premier read() reste bloquant, peut importe cmd... Le processus PHP.exe est bien créé, mais ne se termine pas.
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 String[] cmd = new String[3]; cmd[0] = "cmd.exe"; cmd[1] = "/C"; cmd[2] = cheminPhp + " -q " + cheminFichierPhp + " -file " + cheminFichierEntree + " -logtype stderr"; //ou solution 2 String cmd = cheminPhp + " -q " + cheminFichierPhp + " -file " + cheminFichierEntree + " -logtype stderr"; Runtime rt = Runtime.getRuntime(); Process p = rt.exec(cmd); InputStream in = p.getInputStream(); int val = in.read();//skip \n System.out.println("première lecture ok"); while(val!=-1){ out.write(val); val = in.read(); } System.out.println("lecture terminée");
Sous linux, la solution 2 fonctionne (normal que la solution 1 ne fonctionne pas).
Une solution ?
Partager