Hi
Another question
I am using the waitfor() to check whether the scripts getting executed
correctly or not. I read online that if everything goes correctly,
then an value 0 is returned, i am getting an value 1 and null in my
Interuppted stack trace, so I belive my script is running correctly
right?


On Aug 13, 10:03 am, Rahul <[email protected]> wrote:
> Hi,
> Thanks a lot guys I got it working
> Yes I had to run an concurrent thread and draing the stdout/err
> I found an very helpful article on net which can be useful to other
> facing the same problem
>
> http://www.javaworld.com/javaworld/jw-12-2000/jw-1229-traps.html?page=3
>
> On Aug 13, 9:37 am, jhulford <[email protected]> wrote:
>
> > Also, use ProcessBuilder.  You haven't really said what DOS command
> > you're trying to run but here's what you'd do to quietly delete (ie.
> > no prompts) all the files in some test directory.
>
> > ProcessBuilder b = new ProcessBuilder("cmd", "/C", "del", "/Q", "\\some
> > \\test\\directory");
> > //sets the working directory of the process - don't NEED to do this if
> > your command points to a full path
> > //If you don't set this, the CWD will be the same as "user.dir" system
> > property
> > b.directory("\\some\\dir");
> > //pipe stderr into stdout (useful if you just need to drain the output
> > of the command and don't care
> > //if the data is error or info data)
> > b.redirectErrorStream(true);
> > Process p = b.start();
> > //wait for the command to finish executing
> > p.waitFor();
> > //0 is the standard for "normal" execution exit value (depends on the
> > actual executable though)
> > int exitStatus = p.exitValue();
>
> > Additionally, if the command you're running has the potential to spit
> > out lots of output, you'll probably what to run a concurrent thread
> > and drain the process's stdout/err because all that data sits in a
> > buffer until you read it.  So if it's a lot of data it could cause
> > memory problems for you.
>
> > On Aug 12, 12:11 pm, Paul Robinson <[email protected]> wrote:
>
> > > call Process.waitFor() -- this blocks until the process finishes
>
> > > and then try looking at the output after calling waitFor()
>
> > > Rahul wrote:
> > > > -lothar
> > > > I did that, there is no debugout neither a new directory is made when
> > > > i execute from gwt. If i execute it manually from the dos prompt I am
> > > > getting the desired output.
>
> > > > -Paul
> > > > I tired calling your way also, nothing happens when im running a bat
> > > > file,no ouput is generated. but when i tired opening the notepad it
> > > > opens. There is no output in Process.getErrorStream()
>
> > > > I believe that as lothar said, the Finalizer is killing my batch so
> > > > fast that it never gets executed
> > > > so how can i slow down the finalizer that my batch executes?
>
> > > > On Aug 12, 11:59 am, Paul Robinson <[email protected]> wrote:
>
> > > >> It may be that some useful output is going to the process's standard
> > > >> output or standard error. You can get at that by calling
> > > >> Process.getInputStream() andProcess.getErrorStream()
>
> > > >> Rahul wrote:
>
> > > >>> Hi,
> > > >>> Thanks a lot for your replies
>
> > > >>> -lothar, its not leading to an IO exception, I checked it
> > > >>> - paul, i could not follow what you were trying to say
>
> > > >>> when changed to cmd to notepad, the notepad opens
>
> > > >>> when I read more about the exec command it says that it does not open
> > > >>> the command prompt(the black window), but it still executes the batch
> > > >>> job
> > > >>> so i am using the string :
> > > >>>   try {
> > > >>>                         Runtime.getRuntime().exec("cmd.exe /C start
> > > >>> test.bat");
> > > >>>                 } catch (IOException e) {
> > > >>>                         // TODO Auto-generated catch block
> > > >>>                         e.printStackTrace();
> > > >>>                 }
>
> > > >>> test.bat makes a hello directory in the specified location, but its
> > > >>> not working from this code.
> > > >>> if recognizes that its executint test.bat but theres no output
>
> > > >>> when im runnning test.bat from dos prompt the desired output is
> > > >>> obtained but not from this
>
> > > >>> On Aug 12, 11:15 am, Paul Robinson <[email protected]> wrote:
>
> > > >>>> Try:
>
> > > >>>> Process p = Runtime.getRuntime().exec("cmd.exe");
> > > >>>> InputStream is = p.getInputStream();
>
> > > >>>> and then look at what you can read from the input stream
>
> > > >>>> Rahul wrote:
>
> > > >>>>> Hi,
> > > >>>>> I want to execute dos commands from gwt. Reading from this forum I
> > > >>>>> have to invoke the call from server not from the client.
> > > >>>>> This is my server side code:
>
> > > >>>>>    public String greetServer()
> > > >>>>>    {
> > > >>>>>            try {
> > > >>>>>                    Runtime.getRuntime().exec("cmd.exe");
> > > >>>>>            } catch (IOException e) {
> > > >>>>>                    // TODO Auto-generated catch block
> > > >>>>>                    e.printStackTrace();
> > > >>>>>            }
> > > >>>>>            return "Hello";
>
> > > >>>>>    }
>
> > > >>>>> I am getting success at the client side that it was executed 
> > > >>>>> properly,
> > > >>>>> but I have one question: should the dos prompt window open when i
> > > >>>>> execute this program?? i tired putting cmd,cmd.exe but still the dos
> > > >>>>> prompt doesnt open
> > > >>>>> can anyone tell me what should i do ?
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Google Web Toolkit" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/Google-Web-Toolkit?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to