Using Runtime exec() to open and close process like java or javac

Hi, I m a student who is learning IT and is wondering if
Runtime exec() can run and stop commands like java and javac?
Can someone post the code to do so here?Thank you

Well, Here is my complete code:
import java.util.*;
import java.io.*;
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
class StreamGobbler extends Thread
InputStream is;
String type;
StreamGobbler(InputStream is, String type)
this.is = is;
this.type = type;
public void run()
try
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
String line=null;
while ( (line = br.readLine()) != null)
System.out.println(type + ">" + line);
} catch (IOException ioe)
ioe.printStackTrace();
class Program implements Runnable
     Process proc;
String args[];
     String[] cmd = new String[4];
     boolean isGone=false;
     public Program(String args[])
          this.args=args;
     public void run()
          if (isGone==true)
               try
                    Runtime.getRuntime().exec(cmd).destroy();
               catch(IOException e)
                    System.out.println("Error: "+e.toString());
               System.out.println("User abort");
     public void start(String args[])
          if (args.length < 1)
System.out.println("USAGE: java GoodWindowsExec <cmd>");
System.exit(1);
try
String osName = System.getProperty("os.name" );
if( osName.equals( "Windows NT" ) )
cmd[0] = "cmd.exe" ;
cmd[1] = "/C" ;
cmd[3] = args[0];
else if( osName.equals( "Windows 95" ) ||osName.equals( "Windows 98" ))
cmd[0] = "command.com" ;
cmd[1] = "/C" ;
cmd[2] = args[0];
                    cmd[3]=args[1];
Runtime rt = Runtime.getRuntime();
// System.out.println("Execing " + cmd[0] + " " + cmd[1]
// + " " + cmd[2]+" "+args[1]);                                    
proc = rt.exec(cmd);
// any error message?
StreamGobbler errorGobbler = new
StreamGobbler(proc.getErrorStream(), "ERROR");
// any output?
StreamGobbler outputGobbler = new
StreamGobbler(proc.getInputStream(), "OUTPUT");
// kick them off
errorGobbler.start();
outputGobbler.start();
// any error???
// int exitVal = proc.waitFor();
//System.out.println("ExitValue: " + exitVal);
} catch (Throwable t)
t.printStackTrace();
     public void destroy()
          isGone=true;
class test1 implements ActionListener
     String s[]={"c:\\jdk1.3\\bin\\java.exe","ContactProcessor1"};
     GUI g=new GUI();
          Program p=new Program(s);
     public test1()
          //didnt work
          g.getStart().addActionListener(this);
          g.getStop().addActionListener(this);
          g.show();
     public void actionPerformed(ActionEvent e)
          if (e.getSource()==g.getStart())
               p.start(s);
               p.run();
          if (e.getSource()==g.getStop())
               p.destroy();
               p.run();
     public static void main(String args[])
          test1 t = new test1();
class GUI extends JFrame
     JButton start;
     JButton stop;
     public GUI()
          super();
          getContentPane().setLayout(new FlowLayout());
          start=new JButton("start");
          stop=new JButton("stop");
          getContentPane().add(start);
          getContentPane().add(stop);
          setSize(100,100);
     public JButton getStart()
          return start;
     public JButton getStop()
          return stop;
}

Similar Messages

  • Using Runtime exec() to open java on other directory

    HI, I have a little problem and i hope everyone can help me out abit. You see when u use Runtime.exec(), how to you use it so that when the file you want to open is different from your program directory.
    For example,
    my program is in c:\windows\desktop
    but the file i want to open eg. Somthing.class is in c:\my documents\
    How do I open it using java and i wish to open the file using the java command. Thank a million

    Runtime.getRuntime().exec("cmd /c start /d\"C:\\my documents\" java.exe Somthing");
    Can someone explain the /c start /d\"C:\Mydocuments\" java.exe Somthing.
    And I try to use ping in RunTime.exec,how do I construct the string?And how do i get the result of the ping?
    Thanks

  • Using Runtime.exec to execute Java.exe

    I am trying to use Runtime.exec to spawn a thread that runs java.exe, but havn't had any luck. I have two versions of code, the first one works (example 1), but I want to eliminate the use of "cmd /c" to keep system independance. The second example (example 2) does not work. Both versions work if invoked from the command line. I'm running Win2000. Any Ideas?
    Example 1:
    aProcess = aRuntime.exec("cmd /c java.exe
    -cp "<MyClassPathHere>" <arg1> <arg2> <arg3> <arg4> <arg5>");
    Example 2:
    aProcess = aRuntime.exec("java.exe
    -cp "MyClassPathHere" <arg1> <arg2> <arg3> <arg4> <arg5>");

    I think you mix two concepts: "threads" and "processes". A "thread" is a thread of execution inside the VM, but you want to actually start a new VM in a new process, which is an OS level thing, right?
    I've tried Idea 2 also, same result: works if
    i specify cmd c/, doesn't if I don't.It should work if java.exe is in your path... are you taking care of the standard streams of your process?

  • Software issue iphone 4s:Apps open and close by themselves almost as if someone is pressing the buttons, anyone have this issue?

    Recieved my 3rd iphone  4s due to battery issues and got another dud. While in use, the apps  will open and close on there own, email will get deleted while I'm reading them or archived. while looking through my contacts directory, the phone will select a contact creating an outbound call. This is frustrating. Any one else have this issue?

    Hi Ralph9430,
    I've tried this numerous times and have the same issue. I've even restored the phone to factory settings and removed everything and problem persists.
    Cheers

  • How do I open and close VIs from within a VI?

    Ladies and gentlemen,
    I would like to use a VI to open and close other VIs based on user input.  Example:  The first VI will have text that reads:  "Does the car have heated mirrors?"  There will be two buttons: one for "YES" and the other for "NO."
    If the user hits the "NO" button, the current VI will close and a similar VI will open that asks the user the next question, "Are the mirrors lighted?" "YES" or "NO..."
    If the user hits the "YES" button, the current VI will close and another will open that will tell the user to "Activate the heated mirrors" and press a button that will say "NEXT."  At that point, that VI will close, and in two minutes another VI will open and ask the user "Is the driver's side mirror hot?" with another set of "Yes" or "No" buttons.  If the user presses "YES" we will have verified that the heated driver's side mirror is working properly and store that information somewhere .  If the user presses "NO", the VI will close and another VI will open with some kind of repair instruction and a button that says "RETEST" that will rerun the heated mirror test when repairs are completed.
    During the two minutes we are waiting for the mirrors to heat up the program should move on to the next question: "Are the mirrors lighted?" "YES" or "NO..."
    Does anyone know how to manipulate VIs in this way?  Please help!
    Drew

    Instead of opening and closing vi's, just create one main vi with a state machine architecture.  Search for examples on state machines to get a basic understanding of them.  This is pretty complex so I have written an example of how this could be accomplished.  The trick part was the 2 minute timer (my vi is set for 5 seconds for quick testing).  Each state produces a question, and depending on the answer, the next state is inserted into a queue.  You can add more states for more questions and answers.  Notice that the boolean buttons can be hidden if you just want to show one button (like Next) instead of two buttons (Yes and No).  Study the vi and let me know if you have questions.
    - tbob
    Inventor of the WORM Global
    Attachments:
    Q&A.vi ‏166 KB

  • When to open and close database connection

    im trying to connect to a oracle database using servlets
    when should i open and close the connection
    it works fine when i do both in the doPost() method
    but when i tried to open connection in init() methd .. it doesnt seem to work
    what should i do...
    the connection is initialised in the init() method but is null in the doPost() method

    " im trying to connect to a oracle database using servlets
    when should i open and close the connection
    it works fine when i do both in the doPost() method
    but when i tried to open connection in init() methd .. it doesnt seem to work
    what should i do...
    the connection is initialised in the init() method but is null in the doPost() method"
    1:
    without seeing the code i would say the the connection is null
    because you are storing it as a servlet class variable which is
    not thread safe.
    2:
    The best way to do it using connection pooling
    detailed docs on the tomcat website
    3:
    if you are not using connection pooling, then
    open and close the connection in the do* method
    or
    use init() to place the connection in the servletconfig
    and close in destroy() and use synching to access

  • Opening a new browser using Runtime.exec()...

    I am trying to open a new IE browser window (from Windows) using Runtime.exec( ) command. The problem is that it uses the existing browser window instead of opening a new window. (opens a new window only if there isn't any other browser window)
    Here is the snippet of code that I am using to do this:
    String WIN_PATH = "rundll32";
    String WIN_FLAG = "url.dll,FileProtocolHandler";
    String url = "http://www.cnn.com";
    String cmd = WIN_PATH + " " + WIN_FLAG + " " + url;
    Process p = Runtime.getRuntime().exec(cmd);
    Thanks in advance.
    -Kishore

    >
    opening browser window seems to be easy task, >Even easier with [Desktop.browse(URI)|http://java.sun.com/javase/6/docs/api/java/awt/Desktop.html#browse(java.net.URI)].
    >
    ..can someone help me with closing browser window from java?>Which browser window?
    If you're app. opens a page that you control, it can be done from the web page. See [Have a Java button close the browser window|http://www.rgagnon.com/javadetails/java-0282.html] or the JS based [Close the browser|http://www.rgagnon.com/jsdetails/js-0079.html].
    If you do not control the page, don't close it - the user knows where the little 'x' button is.
    As an aside, despite being opposite ends of the one question, I do not consider this question to be 'part' of the current thread. I think you would have been better off starting a dedicated thread and explaining more fully what the use case is (and adding lots of Dukes).

  • Problem of executing a process under Linux using Runtime.exec

    Hi, All
    I am having a problem of executing a process under Linux and looking for help.
    I have a simple C program, which just opens a listening port, accept connection request and receive data. What I did is:
    1. I create a script to start this C program
    2. I write a simple java application using Runtime.exec to execute this script
    I can see this C program is started, and it is doing what it supposed to do, opening a listening port, accepting connection request from client and receiving data from client. But if I stop the Java application, then this C program will die when any incoming data or connection request happens. There is nothing wrong with the C program and the script, because if I manually execute this script, everying works fine.
    I am using jre1.4.2_07 and running under Linux fedora 3.0.
    Then I tried similar thing under Windows XP with service pack2, evrything works OK, the C program doesn't die at all.

    Mind reading is not an exact science but I bet that you are not processing either the process stdout or the stderr stream properly. Have you read http://www.javaworld.com/javaworld/jw-12-2000/jw-1229-traps.html ?

  • Since installing LTR 5.4, which I've now upgraded to 5.6, I've encountered repeated slowness and malfunctions in operations, especially when using the Compare View function and the Tab key to open and close the right and left side panels.  Such problems n

    Since installing LTR 5.4, which I've now upgraded to 5.6, I've encountered repeated slowness and malfunctions in operations, especially when using the Compare View function and the Tab key to open and close the right and left side panels.  Such problems never arose during two years of using LTR-4 and nothing else has changed on my computer.  I have a pretty simple system with only a few plug-ins, which are usually not in operation.  I have 12GB of RAM in my Windows 7 PC.  I could illustrate these problems with screen shots if you would tell me how to submit screen shots.  Otherwise I will try to describe the problems in words.
    The problem is clearly cumulative, growing worse as usage time passes.  Compare View feature gradually slows down and eventually seems to choke as my work session proceeds. If I Exit LTR and re-enter and start all over, things will work normally for maybe 30 minutes, but then the Compare View feature begins to become very slow to respond.   In a recent example with my screen full of thumbnails in Library mode I highlighted two images to compare. LTR started to open the Compare View screen by first having the top row of thumbnails disappear to be replaced by the "SELECT" and "CANDIDATE" words in their spaces  (but no images), but Compare View never succeeded in gaining control of the screen. After some seconds the top row of thumbnails reasserted its position and the Compare View windows disappeared. But LTR kept trying to bring them back. Again the top row of thumbnails would go away, Select and candidate would reappear, try again, and give up. This went on for at least 2-3 minutes before I tried to choose File and Exit, but even that did not initially want to respond. It doesn't like to accept other commands when it's trying to open Compare View. Finally it allowed me to exit.
    To experiment I created a new catalog of 1100 images.  After 30-40 minutes, the Compare View function began to operate very slowly. With left and right side panels visible and two thumbnails highlighted, hitting Compare View can take half a minute before the two mid-size  images open in their respective SELECT and CANDIDATE windows. When the side panels are open and two images are in the Select/Candidate spaces, hitting the Tab button to close the side panels produces a very delayed response--25-30 seconds to close them, a few more seconds to enlarge the two images to full size. To reverse the process (i.e., to recall the two side panels), hitting Tab would make the two sides of the screen go black for up to a minute, with no words visible. Eventually the info fields in the panels would open up.
    I also created a new user account and imported a folder of 160 images. After half an hour Compare View began mis-placing data.  (I have a screen shot to show this.)  CANDIDATE appears on the left side of SELECT, whereas it should be on the right. The accompanying camera exposure data appears almost entirely to the left of the mid-screen dividing line. Although the Candidate and Select headings were transposed, the image exposure data was not, but the data for the image on the right was almost entirely to the left of the line dividing the screen in two.
    Gurus in The Lightroom Forum have examined Task Manager data showing Processes running and Performance indicators and they see nothing wrong.  I could also send screen shots of this data.
    At this point, the only way I can process my images is to work 30-40 minutes and then shut down everything, exit, and re-start LTR.  This is not normal.  I hope you can find the cause, and then the solution.  If you would like to see my screen shots, tell me how to submit them.
    Ollie
    [email protected]

    Since installing LTR 5.4, which I've now upgraded to 5.6, I've encountered repeated slowness and malfunctions in operations, especially when using the Compare View function and the Tab key to open and close the right and left side panels.  Such problems never arose during two years of using LTR-4 and nothing else has changed on my computer.  I have a pretty simple system with only a few plug-ins, which are usually not in operation.  I have 12GB of RAM in my Windows 7 PC.  I could illustrate these problems with screen shots if you would tell me how to submit screen shots.  Otherwise I will try to describe the problems in words.
    The problem is clearly cumulative, growing worse as usage time passes.  Compare View feature gradually slows down and eventually seems to choke as my work session proceeds. If I Exit LTR and re-enter and start all over, things will work normally for maybe 30 minutes, but then the Compare View feature begins to become very slow to respond.   In a recent example with my screen full of thumbnails in Library mode I highlighted two images to compare. LTR started to open the Compare View screen by first having the top row of thumbnails disappear to be replaced by the "SELECT" and "CANDIDATE" words in their spaces  (but no images), but Compare View never succeeded in gaining control of the screen. After some seconds the top row of thumbnails reasserted its position and the Compare View windows disappeared. But LTR kept trying to bring them back. Again the top row of thumbnails would go away, Select and candidate would reappear, try again, and give up. This went on for at least 2-3 minutes before I tried to choose File and Exit, but even that did not initially want to respond. It doesn't like to accept other commands when it's trying to open Compare View. Finally it allowed me to exit.
    To experiment I created a new catalog of 1100 images.  After 30-40 minutes, the Compare View function began to operate very slowly. With left and right side panels visible and two thumbnails highlighted, hitting Compare View can take half a minute before the two mid-size  images open in their respective SELECT and CANDIDATE windows. When the side panels are open and two images are in the Select/Candidate spaces, hitting the Tab button to close the side panels produces a very delayed response--25-30 seconds to close them, a few more seconds to enlarge the two images to full size. To reverse the process (i.e., to recall the two side panels), hitting Tab would make the two sides of the screen go black for up to a minute, with no words visible. Eventually the info fields in the panels would open up.
    I also created a new user account and imported a folder of 160 images. After half an hour Compare View began mis-placing data.  (I have a screen shot to show this.)  CANDIDATE appears on the left side of SELECT, whereas it should be on the right. The accompanying camera exposure data appears almost entirely to the left of the mid-screen dividing line. Although the Candidate and Select headings were transposed, the image exposure data was not, but the data for the image on the right was almost entirely to the left of the line dividing the screen in two.
    Gurus in The Lightroom Forum have examined Task Manager data showing Processes running and Performance indicators and they see nothing wrong.  I could also send screen shots of this data.
    At this point, the only way I can process my images is to work 30-40 minutes and then shut down everything, exit, and re-start LTR.  This is not normal.  I hope you can find the cause, and then the solution.  If you would like to see my screen shots, tell me how to submit them.
    Ollie
    [email protected]

  • IE open and close immediately. Can't fix using many methods.

    A user reports that can't use IE 8 suddenly.
    His PC is Windows 7 Pro sp1 and using Internet Explorer 8.
    Don't know what he did before and he ever tried restore to previous point but no help.
    I've tried the following.
    1. http://support.microsoft.com/kb/967896
       Reset Internet Explorer to its default settings or
       Uninstall and then reinstall Internet Explorer through Turning on/ off windows features.
    2. Use other user like Administrator to open IE. But result is same
    3. Upgrade to IE 11. Still open and close immediately only.
       Repeat step 1 but still not solve.
    4. Downloaded IE 11 and installed manually but it stated that IE 11 was installed. (Had turned off IE to uninstall it through Turning on/ off windows features)
    Asked him to use Chrome but some websites need IE. So he must use IE too.
    Please advise that how to fix it.
    Hope not need to re-install OS.
    Many thnaks.

    1. Are there any traces in Event logs?
    2. Try to delete history in IE
    3. Try to disable add-ons.
    4. If nothing helps, analyze your system with Process Monitor and Process Explorer. Check which programs starts with Autoruns (all programs are from Sysinternals)
    Regards
    Milos

  • Using runtime.exec,process streams

    Hi all,
    I am using runtime.exec to execute a batch file(rmdir /s/q directoryname) which deletes all the files in a certain directory(including subdirectories). However, some of the files are not deleted since they are being used by other processes.
    I have closed all file references but still the batch file says they are being used by other processes. The File.canWrite() method however, returns true for all the files. I have also tried to delete the files using file.delete but it does not work.
    So I have 2 questions.
    1. Can I forcibly delete these files some other way.
    2. If i call a batch file to delete the files and it fails on some files, the command window displays "cannot delete files". How can I write out thse messages into a text file which i can use as a log file.Do I have to use Process.getInputstream()/Process.getInputstream() ? If so, how?
    Thanks for your help.
    Vinny

    I tried the following before but the string i get is always empty, but i can see there are messages in the command window. Please let me now if i am doing something wrong.
    try{
    Process p = rt.exec("cmd.exe /c start deletefiles.bat");
    InputStream ins = p.getInputStream();
    byte[] bytearray = new byte[1024];
    int bytecount;
    String dos_string="";
    BufferedInputStream bis = new BufferedInputStream(ins);
    while ((bytecount = bis.read(bytearray, 0, 1024)) > -1) {
    String str = new String(bytearray,0,bytecount);
    dos_string += str;
    System.out.println("dos string is" +dos_string);
    catch (Exception e) {
    System.out.println("Error: " + e);

  • I recently migrated my MacBook from 10.5.8 to 10.6.8, using the Snow Leopard CD I purchased from Apple. Since then I have noticed a strange ozone smell coming from the MacBook in the area where the hinges are to open and close the unit. I was told by Appl

    I recently migrated my MacBook from 10.5.8 to 10.6.8, using the Snow Leopard CD I purchased from Apple. Since then I have noticed a strange ozone smell coming from the MacBook in the area where the hinges are to open and close the unit. I was told by Apple that it probably is not serious and is coming from the fans in the MacBook. It is true that the smell/odor is more intense when the fans are working. Apple said I should take the MacBook to an Apple Store to have the hardware checked out. Everything seems to be working correctly. I am backing up automatically wirelessly to a Time Capsule, which I had not done until recently, although I had purchased the Time Capsule in 2009. I have not noticed this odor before. Does anyone suspect something more serious that may be going on?

    You may be smelling it because with the new OS the processor is having to work harder causing it to get hotter then it would with the other OS.  I can't say there is nothing wrong, but what could be happening is just that, it's getting hotter so the fan is spinning faster and moving more air so you are getting more of the smell then you would before.  I would still continue to back it up, and take it to the Apple Store at a Genius Bar and have them look at it to make sure.  Was the computer ever in a smoky environment??

  • How can I open and close private browsing using an IPAD mini in IOS 7?

    How can I open and close private browsing using an iPad mini in ios7?

    Tap the '+' to the right of the URL field to open a new tab, and at the bottom left of the screen there should be a 'Private' button - tap that and you can then go to the site that you want to go to

  • I'm trying to draw a candlestrick chart without using the open and close fields

    I'm trying to draw a candlestrick chart without using the
    open and close fields, however I am seeing nothing on the cart. The
    horizontal and vertical axis are displaying their labels correctly
    for the data. Any ideas what is going on here?

    "nikos101" <[email protected]> wrote in
    message
    news:gi5rh4$ptn$[email protected]..
    > Is it not to draw the line between the high and low
    then? The data I
    > recieve has no open and close data :(
    >
    I've never seen a candlestick that didn't have all 4
    properties.
    You may find the floating columns do what you want here
    http://demo.quietlyscheming.com/ChartSampler/app.html
    or possibly the
    vertical line type will work for you.
    HTH;
    Amy

  • When iphone lock i'm want to use slide open and close camera

    1. When iphone lock i'm want to use slide open and close camera
    2. When i'm turn on wifi via control center i'm need to keep it show popup in order to select join wifi the other

    Autthapol saiyat wrote:
    1. When iphone lock i'm want to use slide open and close camera
    When the phone is locked, you can pull up on the camera icon in the lower right of the screen to access the camera. If you have Control Center enabled in the lock screen, you can also access the camera that way. 

Maybe you are looking for

  • Why do I get disc not ejected properly error message

    Why do I keep getting disc not ejected properly error message since updating my operating system to 10.8.2?

  • GRC AC Maintain Configuration Settings for BRM

    Hello all! I´m folowwing the guide http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/0025394a-1564-2e10-2c97-accc8cfd6888?QuickLink=index&- (AC 10.0 Pre-Implementation) and have a doubt. At page 11 the guide shows one screen whit var

  • Send An Internal Table Via Excel File As An Attachment of E-mail

    Hi, I've sent my internal table via Excel file as an attachment of email but all records of internal table are in a row of sended excel file. How can i send an internal table via excel file , records of internal table for each rows of excel file,as a

  • How to use makefile utility in Solaris

    Hi all, I am new to Solaris platform, but have strong desire to play with Solaris. I have downloaded many utility programs (source code version) for Solaris like LAN-Chat, UNRAR, Screensaver, etc For example, I downloaded "xscreensaver-5.02.tar.gz" a

  • FTP suddenly stopped working

    Today, all my FTP connections have suddenly stopped working. I thought it was a problem with FileZilla, but have since tried 4 or 5 different FTP clients and none of them will connect to anything. Sometimes the connection just times out, and other ti