Ciao grazie per la velocità della risposta. Ti scrivo il tuo codice modificato:

codice:
try {
            String command="C:\\Program Files\\PostgreSQL\\9.0\\bin\\pgsql2shp.exe";
            String arg="-f \"C:\\Users\\Proprietario\\Desktop\\giunzione\" -h \"localhost\" -p \"5432\" -u \"postgres\" -g \"the geom\"  \"comuneFi\" \"GIA_GIUNZIONE\"";
            Runtime rt = Runtime.getRuntime();
            Process pr = rt.exec("cmd.exe /C "+command+" "+arg);
 
            BufferedReader input = new BufferedReader(new InputStreamReader(pr.getInputStream()));
 
            String line=null;
 
            while((line=input.readLine()) != null) {
                  System.out.println(line);
            }
 
            int exitVal = pr.waitFor();
            System.out.println("Exited with error code "+exitVal);
 
            } catch(Exception e) {
                System.out.println(e.toString());
                e.printStackTrace();
            }
Purtroppo non funziona. Ho provato a immettere nel prompt il comando che gli passiamo noi:
codice:
C:\Program Files\PostgreSQL\9.0\bin\pgsql2shp.exe -f "C:\Users\Proprietario\Desktop\giunzione" -h "localhost" -p "5432" -u "postgres" -g "the geom"  "comuneFi" "GIA_GIUNZIONE"
e non funziona. Bisogna necessariamente fare il cambio di directory e poi lanciare l'eseguibile con gli argomenti.
p.s. il codice di uscita è 1.