Solved

Problem with Runtim.exec()

Posted on 2004-10-15
34
272 Views
Last Modified: 2008-02-01
Am trying to use Runtime.exec() to run system commands but my program aint working. The code and the StackTrace are as under. can anybody provide me with a solution.'

package test;

public class Main1 {
  public static void main(String[] args) {

    try {
      Runtime.getRuntime().exec("mkdir c:\temp");
    }
    catch (Exception ex) {
      ex.printStackTrace();
    }
  }
}

Execution result:

java.io.IOException: CreateProcess: mkdir c:\temp error=2
at java.lang.Win32Process.create(Native Method)
at java.lang.Win32Process.<init>(Win32Process.java:63)
at java.lang.Runtime.execInternal(Native Method)
at java.lang.Runtime.exec(Runtime.java:566)
at java.lang.Runtime.exec(Runtime.java:428)
at java.lang.Runtime.exec(Runtime.java:364)
at java.lang.Runtime.exec(Runtime.java:326)
at test.Main1.main(Main1.java:7)
0
Comment
Question by:engineer007
  • 16
  • 8
  • 4
  • +4
34 Comments
 
LVL 37

Accepted Solution

by:
zzynx earned 25 total points
Comment Utility
Runtime.getRuntime().exec("cmd /c mkdir c:\temp");
0
 
LVL 35

Expert Comment

by:girionis
Comment Utility
Try: Runtime.getRuntime().exec("cmd /C start mkdir c:\temp");
0
 
LVL 35

Expert Comment

by:girionis
Comment Utility
Sorry

Try: Runtime.getRuntime().exec("cmd /C mkdir c:\temp");
0
 
LVL 35

Expert Comment

by:girionis
Comment Utility
bah... too late
0
 
LVL 37

Expert Comment

by:zzynx
Comment Utility
But if it is to create a directory, the use of File.makedir() would be better:

File dir = new File("C:/temp");
dir.mkdir();
0
 
LVL 21

Expert Comment

by:MogalManic
Comment Utility
mkdir is an internal command to the Windows shell, so all of the above comments are correct.

BTW, You can do the same thing nativly using Java:
   java.io.File dir=new File("c:/temp");
   dir.mkdirs();  //This will create ALL of the directories specified by the path of 'dir'
0
 
LVL 37

Expert Comment

by:zzynx
Comment Utility
>> all of the above comments are correct.
even the last one was ;°)
0
 

Author Comment

by:engineer007
Comment Utility
well infact I have to run other system commands as well.

 Runtime.getRuntime().exec("cmd /c mkdir c:\temp"); ain't working as well. Now I aint getting the exception but still c:\temp directory is not getting created.
0
 
LVL 35

Expert Comment

by:girionis
Comment Utility
> Now I aint getting the exception but still c:\temp directory is not
> getting created.

What is it doing now? Is it crashing? You might have to read the input and erro in different threads.
0
 

Author Comment

by:engineer007
Comment Utility
Process.exitValue() returns a value of 1
0
 
LVL 37

Expert Comment

by:zzynx
Comment Utility
>> Runtime.getRuntime().exec("cmd /c mkdir c:\temp"); ain't working as well

Try adding an extra \ :

          Runtime.getRuntime().exec("cmd /c mkdir c:\\temp");
0
 
LVL 37

Expert Comment

by:zzynx
Comment Utility
This works for me (while the previous didn't even compile)
0
 
LVL 18

Expert Comment

by:armoghan
Comment Utility
or use it with the other slash :)
Runtime.getRuntime().exec("cmd /c mkdir c:/temp");
0
 
LVL 5

Expert Comment

by:Naeemg
Comment Utility
If your objective is to create director on disk then y don't u use File object.? is so then use the followin code.

    File thisDir = new File("c:\\myDir");
    thisDir.mkdir();


//Naeem Shehzad Ghuman
0
 
LVL 37

Expert Comment

by:zzynx
Comment Utility
No, that last one doesn't work, since in a Dos session you can't type:  mkdir c:/temp
(You get: "The syntax of the command is incorrect")
0
 
LVL 37

Expert Comment

by:zzynx
Comment Utility
Remarks:
1) My previous comment was about armoghan's comment.
2) Naeemg, why do you simple repeat what is already said before? Please first read the previous comments.
0
 
LVL 18

Expert Comment

by:armoghan
Comment Utility
zzynx you r right :)
0
What Is Threat Intelligence?

Threat intelligence is often discussed, but rarely understood. Starting with a precise definition, along with clear business goals, is essential.

 
LVL 1

Expert Comment

by:nadhuvi
Comment Utility
first u can not pass as c:\temp <\t is tab delimiter>
try this c:/temp

0
 
LVL 37

Expert Comment

by:zzynx
Comment Utility
nadhuvi,
You'd better read the previous comments
0
 
LVL 37

Expert Comment

by:zzynx
Comment Utility
Hi engineering007, any questions left?
0
 

Author Comment

by:engineer007
Comment Utility
Ohkay I tried the code on a freinds machine and its working there. But i wont work on mine, Shall be thankful if you could gimme a hint.
0
 
LVL 1

Expert Comment

by:nadhuvi
Comment Utility
ok....
0
 
LVL 37

Expert Comment

by:zzynx
Comment Utility
>>I tried the code on a freinds machine and its working there
Running what OS?
>> But i wont work on mine
Running what OS?
0
 

Author Comment

by:engineer007
Comment Utility
What was that ok fro nadhuvi??
0
 
LVL 37

Expert Comment

by:zzynx
Comment Utility
>> Ohkay I tried the code
You mean the one with the double back slash?
         >>Runtime.getRuntime().exec("cmd /c mkdir c:\\temp");
0
 
LVL 37

Expert Comment

by:zzynx
Comment Utility
>> What was that ok fro nadhuvi??
That was meant for my remark
       >>nadhuvi,
       >>You'd better read the previous comments
0
 

Author Comment

by:engineer007
Comment Utility
Yes the same one
0
 
LVL 37

Expert Comment

by:zzynx
Comment Utility
Then please answer my questions above...
0
 

Author Comment

by:engineer007
Comment Utility
We both are running windows2000 professional.
0
 
LVL 37

Expert Comment

by:zzynx
Comment Utility
Sure you have enough rights to create a temp directory on drive C ?
0
 

Author Comment

by:engineer007
Comment Utility
Yeah quite sure - Infact its not just about making of directories. Whtever command I am attempting isn't running.
0
 
LVL 37

Expert Comment

by:zzynx
Comment Utility
>>But i wont work on mine,

So,

   Runtime.getRuntime().exec("cmd /c dir > c:\\dir.txt");

doesn't create you a dir.txt file on the C drive?

Do you get any errors/exceptions?
0
 

Author Comment

by:engineer007
Comment Utility
Hey well - I just happened to restart my pc after 5 days and things have started to work ;)
Thx zzynx
0
 
LVL 37

Expert Comment

by:zzynx
Comment Utility
Thanks for accepting.

PS.
1) For the people reading this thread afterwards it is good to pay attention to what comment you mark as accepted answer. You had better marked the one with the double quotes as accepted answer since that's the right one.
2) Again, why did you gave a B-grade? It's simply *the* solution. ???
0

Featured Post

6 Surprising Benefits of Threat Intelligence

All sorts of threat intelligence is available on the web. Intelligence you can learn from, and use to anticipate and prepare for future attacks.

Join & Write a Comment

Suggested Solutions

This was posted to the Netbeans forum a Feb, 2010 and I also sent it to Verisign. Who didn't help much in my struggles to get my application signed. ------------------------- Start The idea here is to target your cell phones with the correct…
Java Flight Recorder and Java Mission Control together create a complete tool chain to continuously collect low level and detailed runtime information enabling after-the-fact incident analysis. Java Flight Recorder is a profiling and event collectio…
Viewers learn about the scanner class in this video and are introduced to receiving user input for their programs. Additionally, objects, conditional statements, and loops are used to help reinforce the concepts. Introduce Scanner class: Importing…
Viewers will learn about the regular for loop in Java and how to use it. Definition: Break the for loop down into 3 parts: Syntax when using for loops: Example using a for loop:

772 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

10 Experts available now in Live!

Get 1:1 Help Now