Java.lang.Runtime.exec()

cs_simplo Messages postés 1 Date d'inscription mercredi 5 janvier 2005 Statut Membre Dernière intervention 5 janvier 2005 - 5 janv. 2005 à 14:55
eajisim Messages postés 8 Date d'inscription mardi 8 février 2005 Statut Membre Dernière intervention 13 mai 2007 - 21 févr. 2005 à 16:51
salut les gars,


je veux compiler un fichier .java à partir d'un programme java et pour cela j'ai écrit le petit exmple suivant:





import java.io.*;


public class Javac {





/** Creates a new instance of Javac */


public Javac() {


}





/**


* @param args the command line arguments


*/


public static void main(String[] args) {


// TODO code application logic here


try{


Runtime run= Runtime.getRuntime();


//String[]cmd={"javac","-sourcepath","/home/djoko","-d","/home/djoko","Helloworld.java"};


String cmd= "javac -sourcepath /home/djoko/ -d /home/djoko Helloworld.java";


Process proc= run.exec(cmd);


InputStream stderr = proc.getErrorStream();


InputStreamReader isr = new InputStreamReader(stderr);


BufferedReader br = new BufferedReader(isr);


String line = null;


System.out.println("<ERROR>");


while ( (line = br.readLine()) != null)


System.out.println(line);


System.out.println("</ERROR>");


int exitVal = proc.waitFor();


}catch(Throwable t)


{


t.printStackTrace();


}








}





}





Pour exécuter cet exemple j'ai le fichier Helloworld.java dans le
reprtoire /home/djoko mais l'exécution il m'affiche le message
suivant:


<ERROR>


error: cannot read: Helloworld.java


1 error


</ERROR>


ce que je ne comprend pas c'est pourquoi il n'arrive pas à lire le
fichier Helloworld.java. Si quelqu'un peut avoir une explication,
je compte sur vous.
A voir également:

1 réponse

eajisim Messages postés 8 Date d'inscription mardi 8 février 2005 Statut Membre Dernière intervention 13 mai 2007
21 févr. 2005 à 16:51
essai de faire ca :
try
{
Process process=Runtime.getRuntime().exec("javac /home/djoko/Helloworld.java
");


PrintStream out=new PrintStream(process.getOutputStream());
DataInputStream in=new DataInputStream(new BufferedInputStream(process.getInputStream()));
DataInputStream err=new DataInputStream(new BufferedInputStream(process.getErrorStream()));
byte tabByte[]=new byte[1000];
if(err.read(tabByte)!=-1)
{
System.out.println((new String(tabByte,0)).trim());
tabByte=new byte[1000];
}
if(in.read(tabByte)!=-1)
{
System.out.println((new String(tabByte,0)).trim());
tabByte=new byte[1000];
}

}
catch(IOException ioe)
{System.out.println(ioe.getMessage());}
0
Rejoignez-nous