Executing dos commands in Java

Reply

Join Date: Jan 2006
Posts: 24
Reputation: Rajnesh is an unknown quantity at this point 
Solved Threads: 0
Rajnesh Rajnesh is offline Offline
Newbie Poster

Executing dos commands in Java

 
0
  #1
Jan 8th, 2006
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.
Reply With Quote Quick reply to this message  
Join Date: Jun 2004
Posts: 2,108
Reputation: server_crash is on a distinguished road 
Solved Threads: 18
server_crash server_crash is offline Offline
Postaholic

Re: Executing dos commands in Java

 
0
  #2
Jan 8th, 2006
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?
Reply With Quote Quick reply to this message  
Join Date: Jan 2006
Posts: 24
Reputation: Rajnesh is an unknown quantity at this point 
Solved Threads: 0
Rajnesh Rajnesh is offline Offline
Newbie Poster

Re: Executing dos commands in Java

 
0
  #3
Jan 8th, 2006
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");
}
}
-------------------------------------------------
Reply With Quote Quick reply to this message  
Join Date: Nov 2004
Posts: 6,143
Reputation: jwenting is just really nice jwenting is just really nice jwenting is just really nice jwenting is just really nice 
Solved Threads: 212
Team Colleague
jwenting's Avatar
jwenting jwenting is offline Offline
duckman

Re: Executing dos commands in Java

 
0
  #4
Jan 9th, 2006
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).
As people are clearly allowed to attack me but I'm not allowed to defend myself, I no longer post to this site.
Reply With Quote Quick reply to this message  
Join Date: Jan 2006
Posts: 24
Reputation: Rajnesh is an unknown quantity at this point 
Solved Threads: 0
Rajnesh Rajnesh is offline Offline
Newbie Poster

Re: Executing dos commands in Java

 
0
  #5
Jan 9th, 2006
Could you please explain the steps...of what you said because I tried and i think m not on the right track.....
Reply With Quote Quick reply to this message  
Join Date: Jan 2006
Posts: 24
Reputation: Rajnesh is an unknown quantity at this point 
Solved Threads: 0
Rajnesh Rajnesh is offline Offline
Newbie Poster

Re: Executing dos commands in Java

 
0
  #6
Jan 11th, 2006
Could you forwrd me tha whole prog as i did what you told, while no error is there, but no output is given
Reply With Quote Quick reply to this message  
Join Date: Nov 2004
Posts: 6,143
Reputation: jwenting is just really nice jwenting is just really nice jwenting is just really nice jwenting is just really nice 
Solved Threads: 212
Team Colleague
jwenting's Avatar
jwenting jwenting is offline Offline
duckman

Re: Executing dos commands in Java

 
0
  #7
Jan 12th, 2006
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):
  1. String[] command = new String[4];
  2. command[0] = "cmd";
  3. command[1] = "/C";
  4. command[2] = "dir";
  5. command[3] = "c:\\";
  6. Process p = Runtime.getRuntime().exec(command);
  7. BufferedReader stdInput = new BufferedReader(new
  8. InputStreamReader(p.getInputStream()));
  9.  
  10. BufferedReader stdError = new BufferedReader(new
  11. InputStreamReader(p.getErrorStream()));
  12.  
  13. // read the output from the command
  14.  
  15. String s = null;
  16. System.out.println("Here is the standard output of the command:\n");
  17. while ((s = stdInput.readLine()) != null) {
  18. System.out.println(s);
  19. }
  20.  
  21. // read any errors from the attempted command
  22.  
  23. System.out.println("Here is the standard error of the command (if any):\n");
  24. while ((s = stdError.readLine()) != null) {
  25. System.out.println(s);
  26. }

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).
As people are clearly allowed to attack me but I'm not allowed to defend myself, I no longer post to this site.
Reply With Quote Quick reply to this message  
Join Date: Jan 2009
Posts: 1
Reputation: aruntells is an unknown quantity at this point 
Solved Threads: 0
aruntells aruntells is offline Offline
Newbie Poster

Re: Executing dos commands in Java

 
-2
  #8
Jan 15th, 2009
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) {
Reply With Quote Quick reply to this message  
Join Date: Nov 2009
Posts: 1
Reputation: prianka is an unknown quantity at this point 
Solved Threads: 0
prianka prianka is offline Offline
Newbie Poster
 
0
  #9
12 Days Ago
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");
}
}
}
Reply With Quote Quick reply to this message  
Reply

Message:



Similar Threads
Other Threads in the Java Forum
Thread Tools Search this Thread



About Us | Contact Us | Advertise | DaniWeb | Acceptable Use Policy | RSS Feed

©2003 - 2009 DaniWeb® LLC