Compilation du programme C à partir d’un programme java

J’essaie de comstackr un programme ac à partir d’un programme java sur une plate-forme Linux. Mon extrait est.

ProcessBuilder processBuilder = new ProcessBuilder("/usr/bin/gcc", "-c","/hipad/UserProject/example.c"); Process proc = processBuilder.start(); 

Il n’y a pas d’erreur lors de la compilation du programme Java mais je ne parviens pas à obtenir le fichier .o. J’ai essayé de trouver des solutions mais personne ne travaille. Toute suggestion…..

Le répertoire de travail par défaut d’un processus enfant correspond au répertoire de travail du processus Java, qui est généralement celui d’où il a été lancé. Et par défaut, gcc écrit les fichiers de sortie dans le répertoire de travail actuel. C’est là que vous devriez trouver example.o .

Il existe deux manières simples de résoudre ce problème. Vous pouvez donner l’option -o gcc , le chemin complet et le nom du fichier de sortie souhaité, ou vous pouvez définir le répertoire de travail du processus enfant, comme ceci:

 ProcessBuilder processBuilder = new ProcessBuilder("/usr/bin/gcc", "-c","example.c"); // source in working dir processBuilder.directory(new File ("/hipad/UserProject")); // or whatever Process proc = processBuilder.start(); 

Voir le fichier javadoc de ProcessBuilder pour plus d’informations.