2011-12-07 7 views
1

J'ai un code C++ COMPILED qui prend deux arguments: fichier d'entrée & fichier de sortie. Il n'est également pas possible de canaliser l'entrée et la sortie. Je veux appeler ce programme à partir d'une application Java. La seule option d'amélioration des performances qui me vient à l'esprit consiste à utiliser des fichiers mappés en mémoire. La tâche est simple:Comment communiquer entre C++ et JAVA via un fichier mappé en mémoire sans NMI?

  1. créer deux fichiers (noms)
  2. appel C++ programme compilé et fournir les noms de fichiers (manipulation de code n'est pas possible, le code est trop compliqué)
  3. lecture fichier de sortie

Comment puis-je le faire en Java?

+1

Pouvez-vous faire déposer la sortie d'un tube nommé? C'est plus simple à lire car il est écrit sans interroger le fichier. –

Répondre

0

Vous pouvez y parvenir en:

try { 
    //Start the c++ program 
    Process p = Runtime.getRuntime().exec("MyCppProgram.exe "+"intputFile "+"outputFile"); 
    // wait until the program finishes 
    p.waitFor(); 
    // Done, process output file 
} 
catch (Exception e) { 
    e.printStackTrace(); 
} 
+1

Merci, mais cette solution n'utilise pas un fichier mappé en mémoire. – Ali

Questions connexes