Bonjour,
Je souhaite exécuter une commande bash en Java. (import d'un shapefile dans une base de données postgis).
Pour cela je fais :
Si je copie/colle la commande dans une console ça fontionne.
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 Process process = null; try { String commande = "shp2pgsql -p /tmp/MYSHP myschema.mytable > /tmp/mytable.sql"; System.out.println("COMMANDE = "+commande); process = Runtime.getRuntime().exec(commande); followUp(process); } catch (IOException e) { System.out.println("PB creation"); if(process != null) process.destroy(); throw e; } private void followUp(Process process) throws IOException { InputStream inputstream = process.getInputStream(); InputStreamReader inputstreamreader = new InputStreamReader(inputstream); BufferedReader bufferedreader = new BufferedReader(inputstreamreader); System.out.println("bufferedreader : "+bufferedreader); String line = bufferedreader.readLine(); System.out.println(line); while (line != null) { System.out.println(line); line = bufferedreader.readLine(); } }
J'ai essayé de mettre le chemin complet vers l'exécutable (/./usr/local/pgsql/data/bin/shp2pgsql) mais ça ne change rien.
Le process n'est pas null et aucune erreur n'est remontée mais le bufferedreader.readLine() l'est.
Merci de votre aide !
WwAve
Partager