2010-07-28 5 views
0

Je suis en train d'appeler C++ exe de Java applet.For cette fin je suis en utilisant le code processbuilder.My est comme suitappel C++ java exe à partir

ProcessBuilder pb = new ProcessBuilder(s); 
Process process = pb.start(); 
final InputStream is = process.getInputStream(); 
OutputStream out = process.getOutputStream(); 
PrintWriter pw = new PrintWriter(new BufferedWriter(new OutputStreamWriter(out))); 
pw.println(1); 
pw.println(1 +"" +2); 
new Thread(new Runnable() {  
    public void run() { 
     try { 
     BufferedReader br = new BufferedReader(new InputStreamReader(is)); 
     String line; 
     while ((line = br.readLine()) != null) { 
      System.out.println(line); 
     } 
     } catch (java.io.IOException e) { 

     } 
    } 
}).start(); 
pw.close(); 

Le C++ exe ressemble à ceci lorsque commencé:

  1. Trouvez le chemin le plus court de s à t.
  2. Trouvez le chemin associant de s à t dans la longueur l.
  3. Trouver le chemin associant de s à t dans les temps (1 + bêta) de la plus courte distance de s à t.
  4. sortie entrée S'il vous plaît la commande (1-4):

une fois u entrée de la commande, par exemple 1, nous obtenons

entrée S'il vous plaît s et t, séparés par un espace:

Après cela, vous entrez deux chiffres et vous obtiendrez un réseau.

Je peux obtenir jusqu'à S'il vous plaît entrer s et t, séparés par l'espace: .Après cela, il n'affiche rien.

Aide!

Merci.

Répondre

0
pw.println(1 +"" +2); 

Cela envoie la chaîne 12, pas 1 2. Le "" est une chaîne de longueur nulle.

+0

Bonjour, Merci pour votre réponse. Alors, comment puis-je envoyer deux nombres séparés par l'espace? Merci – joji

+0

En imprimant un espace entre les nombres: 'pw.println (1 +" "+ 2);' - notez l'espace entre les guillemets. – Jesper

+0

merci.J'ai ajouté un espace mais toujours pas la sortie finale.Il ne prend pas dans les arguments 1 et 2.une idée pourquoi? – joji