Salve,

sto provando ad eseguire un eseguibile dos, ma non riesco ad ottenere l'output.

Il problema penso sia dovuto al fatto che questo programma, un client vpn, prima di connettersi chiede un messaggio di conferma del tipo "vuoi connetterti? (y/n)", ed io non immetto nulla da Java e quindi magari resta in ascolto senza rilasciare mai l'output.

Volendo però procedere per gradi, a prescindere dal problema del rispondere al messaggio di conferma, vorrei che almeno mi desse l'output, sino a tale messaggio, invece non mi da niente e non si ferma mai.
Se invece provo a dare il comando con dei parametri sbagliati, ad esempio la password, allora ricevo l'output di errore.

Ecco la classe:

Codice PHP:
import java.io.*;

public class 
Exec {

    public static 
void main(String[] args) {
        try {
            
String cmd "C:\\Programmi\\Cisco Systems\\VPN Client\\vpnclient.exe connect pwd myPassword MyVPNServer";

            
Runtime rt Runtime.getRuntime();
            
Process proc rt.exec(cmd);

            
// any output?
            
StreamGobbler outputGobbler = new StreamGobbler(proc
                    
.getInputStream());

            
// kick them off
            
outputGobbler.start();

            
int exitVal proc.waitFor();
            
System.out.println("ExitValue: " exitVal); // 0 = no error

        
} catch (Exception e) {
            
e.printStackTrace();
        }
    }

}

class 
StreamGobbler extends Thread {
    
InputStream is;

    
StreamGobbler(InputStream is) {
        
this.is is;
    }

    public 
void run() {
        try {
            
InputStreamReader isr = new InputStreamReader(is);
            
BufferedReader br = new BufferedReader(isr);
            
            
String line null;

            while ((
line br.readLine()) != null) {
                
System.out.println(line);
            }
        } catch (
IOException ioe) {
            
ioe.printStackTrace();
        }
    }

Ecco l'output che dovrebbe produrre:

************************************
Cisco Systems VPN Client Version 5.0.05.0290
Copyright (C) 1998-2009 Cisco Systems, Inc. All Rights Reserved.
Client Type(s): Windows, WinNT
Running on: 5.1.2600 Service Pack 3
Config file directory: C:\Programmi\Cisco Systems\VPN Client\

Initializing the VPN connection.
Contacting the gateway at xx.xx.xxx.xx
Authenticating user.
Negotiating security policies.
Securing communication channel.

Siete connessi alla rete xxx solo uso xxxxxx

Ogni abuso sara' punito a norma di legge
Do you wish to continue? (y/n):
Your VPN connection is secure.
************************************