![]() |
| ||
| Executing dos commands in Java Dear all, Could you tell me how to go about executing MSDOS commands thru Java. I tried with the Process class but it gives an error:2. Could anyone please advise. |
| ||
| Re: Executing dos commands in Java You should be able to use Process: Process p = Runtime.getRuntime().exec(command); command is a string you pass. What's the error you're recieving? |
| ||
| Re: Executing dos commands in Java The error says: ------------------------------------------------------------------------- Exception in thread "main" java.io.IOException: CreateProcess: start error=2 at java.lang.Win32Process.create(Native Method) at java.lang.Win32Process.<init>(Unknown Source) at java.lang.Runtime.execInternal(Native Method) at java.lang.Runtime.exec(Unknown Source) at java.lang.Runtime.exec(Unknown Source) at java.lang.Runtime.exec(Unknown Source) at java.lang.Runtime.exec(Unknown Source) at Dos.main(Dos.java:5) ------------------------------------------------------------------ The program is: --------------------------------------- import java.io.*; public class Dos{ public static void main(String[] args) throws IOException{ Process p = Runtime.getRuntime().exec("start"); } } ------------------------------------------------- |
| ||
| Re: Executing dos commands in Java You will need to start a command interpreter in order to launch operating system level commands. Under win32 that's done using the "cmd" command. For example "cmd dir" would execute a dir command. The entire system is rather tricky, I've never really gotten the hang of it (but then I've never tried to, preferring to keep my code operating system independent). |
| ||
| Re: Executing dos commands in Java Could you please explain the steps...of what you said because I tried and i think m not on the right track..... |
| ||
| Re: Executing dos commands in Java Could you forwrd me tha whole prog as i did what you told, while no error is there, but no output is given |
| ||
| Re: Executing dos commands in Java I've done a bit more R&D (you got me interested ;) ), turns out it's trickier than it looks because you need to start a process and then start a process in that process and catch the output of that sub process. As a minimum you'd end up with something like this (for a simple dir command): String[] command = new String[4]; Forget the /C option (as I initially did) and it will only start a command shell and just sit there forever waiting for that to terminate (which it won't as there's nothing ever telling it to close). |
| ||
| Re: Executing dos commands in Java Hi Friend, Please find the sample code below. Runtime r = Runtime.getRuntime(); Process p = r.exec("cmd"); BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream())); String inputLine="" ; while ((inputLine = in.readLine()) != null) { |
| ||
| import java.io.*; public class Dos { public static void main(String[] args) { try { String[] command = new String[4]; command[0] = "cmd"; command[1] = "/C"; command[2] = "del"; command[3] = "d:\\a.txt"; Process p = Runtime.getRuntime().exec(command); BufferedReader stdInput = new BufferedReader(new InputStreamReader(p.getInputStream())); BufferedReader stdError = new BufferedReader(new InputStreamReader(p.getErrorStream())); // read the output from the command String s = null; System.out.println("Here is the standard output of the command:\n"); while ((s = stdInput.readLine()) != null) { System.out.println(s); } // read any errors from the attempted command System.out.println("Here is the standard error of the command (if any):\n"); while ((s = stdError.readLine()) != null) { System.out.println(s); } System.out.println("I am In try"); } catch(Exception e){ System.out.println("I am In catch"); } } } |
| All times are GMT -4. The time now is 2:47 pm. |
Forum system based on vBulletin Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
©2003 - 2009 DaniWeb® LLC