Opening a java application from a java application

I am trying to write a simple patching application for a program I am writing. The application must work on both Windows and Mac computers. The program is compiled into a single jar file. To patch the program, I'd like to see if an update is available, download the update if it's available and if the user requests it, and then apply the patch. Since this is a very simple, relatively small program, the "patch" is actually just a newer version of the jar file.
I've haven't had any problems in detecting or downloading the updated jar file. The problem I'm having is that I can't overwrite the old jar file with the new one while the program is running (of course). Therefore, I wrote a separate patch program that does the actual downloading and replacing work. The order of operations should look like this:
Open program -> Check for patch -> If user wants to patch then...
Open patch application -> Close program -> Patch application downloads new jar file and replaces old jar file -> Open original program -> Close patch application.
However, I can't seem to open the patch application from the original application. I'm using Runtime.getRuntime().exec("java -jar patchApp.jar") but I'm not getting any output whatsoever, neither the program running nor an exception. Can anyone suggest something here? Any help is appreciated.

However, I can't seem to open the patch application
from the original application. I'm using
Runtime.getRuntime().exec("java -jar patchApp.jar")
but I'm not getting any output whatsoever, neither the
program running nor an exception. Can anyone suggest
something here? Any help is appreciated.I've had bad results using the Runtime.exec method. It doesn't seem to be very reliable, at least not in Windows (that's probably not Java's fault.)
Can you run java by just typing java at the console or do it have to be qualified. Make sure your patchApp.jar argument is in the correct case also.
I gave up on exec and use JNI to delegate this task to native code. That's going to a little more complicated if you are running in two environemts.

Similar Messages

  • Open a word document from a Java Application

    Hi,
    Can I open a word document from a java GUI apllication and point to a bokkmark automatically in the word document when opened.

    See this thread:
    http://forum.java.sun.com/thread.jspa?threadID=228332&messageID=810684

  • Calling Java screens from Oracle Forms application

    I am working with a client that has a large Oracle forms application. Since rewriting the entire application in Java is not an option at this time, the strategic direction is that any new modules that are to be created for the application are to be done in Java and called from the Forms menu. The decision as to what tool to use to develop the Java modules is still under debate. What is the best (most seamless) way to do this...calling a Java screen from a Forms application? If anyone has any experience in this, or can direct me to some literature on it, it would be greatly appreciated. Thanks.

    This is a web app in Forms/Reports 10g R2 running off Oracle AS and an Oracle db. The challenge for us is that the direction is that any new enhancements (screens) are to be built using Java (in either ADF Faces or Swing, another point for debate later) and then called from the Forms app. The business client is only paying for the enhancement. They don't care about moving off Forms to Java, so any extra work on the part of IT to do this, has to be fairly minimal and doable within the project budget. The movement to Java is an IT direction. Is there a way to do this without having to build a java framework for the entire Forms application (which I assume would take some time and involve retesting the entire app)?

  • Launching Java Application From A Java Application

    Hello,
    I am building a compiler and would like to have run feature. The problem is I can not seem to figure out the righ syntax to run and application from my java application.
    Here is the code I am using to run an application:
    public void RunClass()
    try
    Runtime rtr=Runtime.getRuntime();
    Process pr = rtr.exec("java " + CurrentDirectory + FileNoExt);
    String line;
    BufferedReader rerr = new BufferedReader(new InputStreamReader(pr.getErrorStream()));
    if((line = rerr.readLine()) == null) { CompileMessageArea.setText("Program Running\n"); }
    while ((line = rerr.readLine()) != null) { CompileMessageArea.append(line +"\n"); }
    rerr.close();
    catch(Exception re) { re.printStackTrace(); }
    The following is an example of what the above would send to the:
    java c:\MyJava\Programs\test
    If you try to type something like that in a DOS prompt it will not work. You must first change to that directory, but I am hoping there is an easy way to change the syntax. On the other hand if you want to compile a program you can type:
    javac c:\MyJava\Programs\test.java
    and it will work just fine. This is kind of funny and I use this syntax for my compiler in my program. You would think that the same syntax would work the same for both compiling and running but it does not. So, I know that if I just know what the correct syntax that dos would except for running an application it would work.
    So, if you have the answer for me PLEASE LET ME KNOW.
    It is easily testable by keying it into the dos prompt.
    Sincerely,
    Eric Kohr

    If you want to do it that way you need to use the environment parameter of the exec() method. Use it to set your classpath to the directory that's need for the java application you are about to run... for instance.
    String[] env = new String[] {"CLASSPATH=c:\classes"}
    String command = "java somePackage.someProgram";
    Runtime.getRuntime().exec( env, command);Where your program is in the file "c:\classes\somePackage\someProgram"
    your mileage may vary :)
    You can also reflectively load classes into the running VM and invoke their main methods. This give you the ablility to control them a bit more.

  • Opening a PPT file from a Web Application

    Hi,
    I want to open a PPT file from my web application.
    I have provided an hyperlink of the complete path of the file. Once the user clicks on this hyperlink the PPT shall open.
    Kindly help me out with this.
    Thanks.

    Sounds like you're done. What happens when the user clicks the link?

  • Calling A Webdynpro Application From Another Webdynpro Application

    Hi,
    i want to call a webdynpro application from another webdynpro application with sending parameters.
    i used this method,
    CALL METHOD cl_wd_utilities=>construct_wd_url
        EXPORTING
          application_name = lv_webapp
        IMPORTING
          out_absolute_url = lv_url.
    CONCATENATE lv_url '?param1=' lv_param INTO lv_url.
    data lo_window_manager type ref to if_wd_window_manager.
    data lo_api_component  type ref to if_wd_component.
    data lo_window         type ref to if_wd_window.
    lo_api_component  = wd_comp_controller->wd_get_api( ).
    lo_window_manager = lo_api_component->get_window_manager( ).
    lo_window         = lo_window_manager->CREATE_EXTERNAL_WINDOW(
        URL = LV_URL
    lo_window->open( ).
    but this method shows the parameters on the address bar.
    is there a method to send the parameters to another webdynpro application without show the parameters on the address bar?
    Can somebody help me pls?
    Thanks.

    I've used a server cookie before. This was built for BSP, but it is really usable anywhere.  It just writes the data temporary into the database.  This way you can just pass one meaningless URL parameter - like a GUID and use this key to read the data (the server cookie) upon initialization of the new application.  I generally serialize all the data that I want into one server cookie by serializing a class. I can then restore whatever attributes of the class that I want on the receiving side.
    http://help.sap.com/saphelp_nw70ehp1/helpdata/en/bd/4cd23a09313b37e10000000a11405a/frameset.htm

  • How to call a Java class from another java class ??

    Hi ..... can somebody plz tell me
    How to call a Java Class from another Java Class assuming both in the same Package??
    I want to call the entire Java Class  (not any specific method only........I want all the functionalities of that class)
    Please provide me some slotuions!!
    Waiting for some fast replies!!
    Regards
    Smita Mohanty

    Hi Smita,
    you just need to create an object of that class,thats it. Then you will be able to execute each and every method.
    e.g.
    you have developed A.java and B.java, both are in same package.
    in implementaion of B.java
    class B
                A obj = new A();
                 //to access A's methods
                 A.method();
                // to access A's variable
                //either
               A.variable= value.
               //or
               A.setvariable() or A.getvariable()

  • How to start java.exe from a java program in windows ?

    Hi,
    I did like to know, if its possible to run java.exe from a java program on windows ? The java.exe should be visible from checking the processes that are currently running using the Task Manager on windows.

    Runtime.getRuntime().exec("java Sample");

  • Trying to compile a .java file from another .java file

    Hello,
    I'm trying to compile a .java file from another .java file using Runtime.exec...
    String c[]=new String[3];
    c[0]="cmd.exe"; c[1]="/c" ; c[2]="javac Hello.java";
    Process p=Runtime.exec(c);
    If anyone can help me in atleast getting the command prompt when Runtime.exec("cmd.exe") is executed...that would be great...I tried out notepad.exe, calc, explorer instead of cmd.exe...all the commands display their respective windows..except cmd.exe...the command prompt doesnt appear...
    Please help me ASAP....
    Thanks for your help in advance...
    Regards.
    AKhila.

    try this. ur code will be compliled and will get .class file. but console won't appear. is it a must for u?
    public class Exec{
         public static void main(String a[]) throws Exception{
              String c[]=new String[3];
              c[0]="cmd.exe"; c[1]="/c" ; c[2]="javac Hello.java";
              Process p=Runtime.getRuntime().exec(c);
              // or Runtime.getRuntime().exec("javac Hello.java");

  • How to compile and run a .java file from another java program

    hello,
    can any one tell me how to compile and run a *.java* file from another java program which is not in same directory?

    Well a smarter way of implementing this is by using a solution provided by Java Itself.
    If you are using J2SE 6.0+ there is an in built solution provided along with JDK itself and inorder to go ahead with solution the below are set of API which you;d be using it for compiling Java Programs (Files)
    http://java.sun.com/javase/6/docs/api/javax/tools/package-summary.html
    How do i do that ??
    Check out the below articles which would help you of how to do that
    http://www.ibm.com/developerworks/java/library/j-jcomp/index.html
    http://www.javabeat.net/javabeat/java6/articles/java_6_0_compiler_api_1.php
    http://books.google.com/books?id=WVbpv8SQpkEC&pg=PA155&lpg=PA155&dq=%22javax+tools%22+compiling+java+file&source=web&ots=XOt0siYe-f&sig=HH27ovuwvJgklIf8omTykUmy-eM
    Now once we are done with compilation.In order to run a Specific class all you ought to do is create an object and its specific methods of a specified class included in the CLASSPATH which you can manage it easily by usage little bit reflections.
    Hope that might help :)
    REGARDS,
    RaHuL

  • Stopped mac protector scam download in process of scanning files.  Trashed application from download folder/application folder and system preferences' accounts log in items.  does anything else need to be purged? checked?

    stopped mac protector scam download in process of scanning files.  Trashed application from download folder/application folder and system preferences' accounts log in items.  does anything else need to be purged? checked?

    stopped mac protector scam download in process of scanning files.  Trashed application from download folder/application folder and system preferences' accounts log in items.  does anything else need to be purged? checked?

  • I BOUGHT an application from my iphone Application icon and paid 2.99 dollars too, for phone tracker , downloaded sucessfully and its working too but not tracking the phones as mentioned in the description can any one support me??? better from apple

    I BOUGHT an application from my iphone Application icon and paid 2.99 dollars too, for phone tracker , downloaded sucessfully and its working too but not tracking the phones as mentioned in the description can any one support me??? better from apple!!

    Is this the app you're referring to?
    http://itunes.apple.com/us/app/phone-tracker/id348537489?mt=8
    As you'll note it's made by Presselite and that page has a link to their support.
    Also, you'll find it best not to post questions about iPhone apps in the AppleWorks forum. Best to contact the makers of the app.
    Regards
    TD

  • URGENT: building Unicode ASO application from Unicode BSO application?

    Hello Experts,
    Is there other options available for building Unicode ASO application from Unicode BSO application?
    As per readme documentation of version 11.1.1.3.00,
    http://download.oracle.com/docs/cd/E12825_01/epm.111/esb_1111300_readme.pdf
    Block storage non-Unicode outlines can be converted to aggregate storage non-Unicode outlines; however, block storage Unicode outlines cannot be converted to aggregate storage Unicode outlines. [8208584]
    Can anyone suggest how to extract the Unicode Block Storage Outline and build as Unicode Aggregate Storage Outline? Thanks in advance.
    Regards,
    Sudhir

    Hi,
    You could use the [Outline Extractor|http://www.appliedolap.com/free-tools/outline-extractor] or ODI to extract the metadata from an outline and then use it to load into another database.
    Or use the same methods you built the metadata in the original BSO database.
    Cheers
    John
    http://john-goodwin.blogspot.com/

  • How to open another application from a java programme

    How can I open some other application like "Textpad"
    from a java programme.
    Actually I want to open a particular java file in Textpad editor from my java programme.
    How Can I do that?
    Thanks

    Thanks for the code,
    I tried that but got this error
    java.io.IOException: CreateProcess: C://ProgramFiles/TextPad4/TextPad.exe D://Pi
    yush/BeanCreator/Parts.java error=3
    at java.lang.Win32Process.create(Native Method)
    at java.lang.Win32Process.<init>(Win32Process.java:64)
    at java.lang.Runtime.execInternal(Native Method)
    at java.lang.Runtime.exec(Runtime.java:272)
    at java.lang.Runtime.exec(Runtime.java:195)
    at java.lang.Runtime.exec(Runtime.java:152)
    at pack.CreateBean.CreateFile(CreateBean.java:327)
    Any idea!! What that means

  • Help about opening a PHP page from a Java application

    Hi,
    I would have some elements to open a PHP page from a little Java application I'm doing. I would like to know the classes I had to use, how to implement them, ...
    In fact, I dial into my application my login, my password, and when I click on by "Connect" button, I must show the PHP page corresponding ti my profile onto the database. Picking up information from the database is not a problem, I know how to use SQL Packages in Java. The problem is to open a new page (IE or Netscape) when clicking on the "Connect" button in my application.
    Thanks a lot for advice me.
    C�dric

    Hi
    This class is from JavaWorld Tip 66 and I've used it to open web pages and files in a browser.
    import java.io.IOException;
    import java.util.*;
    * A simple, static class to display a URL in the system browser.
    * Under Unix, the system browser is hard-coded to be 'netscape'.
    * Netscape must be in your PATH for this to work.  This has been
    * tested with the following platforms: AIX, HP-UX and Solaris.
    * Under Windows, this will bring up the default browser under windows,
    * usually either Netscape or Microsoft IE.  The default browser is
    * determined by the OS.  This has been tested under Windows 95/98/NT.
    * Examples:
    BrowserControl.displayURL("http://www.javaworld.com")
    BrowserControl.displayURL("file://c:\\docs\\index.html")
    BrowserContorl.displayURL("file:///user/joe/index.html");
    * Note - you must include the url type -- either "http://" or
    * "file://".
    public class BrowserControl
         * Display a file in the system browser.  If you want to display a
         * file, you must include the absolute path name.
         * @param url the file's url (the url must start with either "http://"
    or
         * "file://").
        public static void displayURL(String url) throws Exception
            boolean windows = isWindowsPlatform();
            String cmd = null;
            try
                if (windows)
                    // cmd = 'rundll32 url.dll,FileProtocolHandler http://...'
                    cmd = WIN_PATH + " " + WIN_FLAG + " " + url;
                    Process p = Runtime.getRuntime().exec(cmd);
                else
                    // Under Unix, Netscape has to be running for the "-remote"
                    // command to work.  So, we try sending the command and
                    // check for an exit value.  If the exit command is 0,
                    // it worked, otherwise we need to start the browser.
                    // cmd = 'netscape -remote openURL(http://www.javaworld.com)'
                    cmd = UNIX_PATH + " " + UNIX_FLAG + "(" + url + ")";
                    Process p = Runtime.getRuntime().exec(cmd);
                    try
                        // wait for exit code -- if it's 0, command worked,
                        // otherwise we need to start the browser up.
                        int exitCode = p.waitFor();
                        if (exitCode != 0)
                            // Command failed, start up the browser
                            // cmd = 'netscape http://www.javaworld.com'
                            cmd = UNIX_PATH + " "  + url;
                            p = Runtime.getRuntime().exec(cmd);
                    catch(InterruptedException x)
                        System.err.println("Error bringing up browser, cmd='" +
                                           cmd + "'");
                        System.err.println("Caught: " + x);
                        throw x;
            catch(IOException x)
                // couldn't exec browser
                System.err.println("Could not invoke browser, command=" + cmd);
                System.err.println("Caught: " + x);
                throw x;
         * Try to determine whether this application is running under Windows
         * or some other platform by examing the "os.name" property.
         * @return true if this application is running under a Windows OS
        public static boolean isWindowsPlatform()
            String os = System.getProperty("os.name");
            if ( os != null && os.startsWith(WIN_ID))
                return true;
            else
                return false;
         * Simple example.
        public static void main(String[] args)
          try
    //        displayURL("file://c:\\Manual\\Amphibian Accounting Help Test 3.pdf");
    //        displayURL("http://www.pro7.co.za");
            Properties prop = System.getProperties();
    //        Enumeration enum = prop.propertyNames();
            Enumeration enum = prop.keys();
            while(enum.hasMoreElements())
              enum.nextElement();
          catch(Exception e)
        // Used to identify the windows platform.
        private static final String WIN_ID = "Windows";
        // The default system browser under windows.
        private static final String WIN_PATH = "rundll32";
        // The flag to display a url.
        private static final String WIN_FLAG = "url.dll,FileProtocolHandler";
        // The default browser under unix.
        private static final String UNIX_PATH = "netscape";
        // The flag to display a url.
        private static final String UNIX_FLAG = "-remote openURL";
    }If you find a better solution please let me know!
    Regards
    Michael Williams

Maybe you are looking for