Killing a Java process from another Java process

Hi
Is there a possible way of sending a SIGINT, SIGKILL, or any other signal from a Java process running in one JVM, to a java process running in a different JVM on the same machine.
I've the signal handlers written in my process and they do respond to singals (e.g. on pressing Ctrl-C) on the console, but i want to write a separate program that sends this signal to the first process.
Any ideas?
Thanks in advance and regards
Kashif

The answer, as always, is that Java can't do operating-system-specific things like that, but you can use JNI to do it. However, if your code created the Java process you want to kill, via Process p = Runtime.getRuntime().exec(...), then you can use p.destroy() to kill it.

Similar Messages

  • Invoking bpel process from another bpel process in same app server

    Hi,
    When I invoke a bpel process from another bpel process in the same oracle AS
    1. Is it a SOAP call or is there any optimization?
    2. If there is some optimization where can I configure this?
    3. Is there any similar optimizations if I invoke a bpel process from a
    java application deployed in the same server? If so can you please provide
    a sample?
    Thanks for your help
    Raj

    By default the BPEL 10.1.2, it will do a local call to the process. It will not execute a SOAP request, no network access is done.
    It can be configured at domain level:
    Parameter: optSoapShortcut (SOAP local optimization)
    Turns on "short-cut" for local SOAP request; local SOAP calls are normally done via an internal call instead of sending a message through the SOAP stack.
    The default behavior for the engine is to optimize all. To disable optimization specify a value other than "true" or "yes".

  • 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 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()

  • Calling BPM Sub Process from another BPM Process - Stuck at Sub Process

    Hi
    JDeveloper 11.1.1.6, BPM 11.1.1.6, WLS 10.3.6
    I am trying to Call a BPM Process from another BPM Process. Both the processes are defined in the same BPM Project.
    Both the Processes have 'None' Start and End activities.
    The 'Parent Process' has a 'Call Activity' which calls the 'Sub Process'.
    The Sub process takes a parameter of payload object as input and returns output (also same payload object)
    I have passed the payload object from parent to sub process in the 'Data Associations'.
    The Start and End activities in the sub process also have the data associations set where I am passing the payload object from parent process to child process.
    When I run the process and see the Enterprise Manager console - Audit Trail / Flow tabs,
    Flow Tab - The progress of the process is showing only till the Calling of the sub process in the Parent Process. It does not show the Sub Process.
    Audit Trail Tab - Shows that the Sub Process is called but has not reached to the End of the Sub process.
    The audit trail does not have links to the sub process activities.
    I cannot see any exceptions as well in the audit trail.
    How can I find out why the process is stuck? Or what is going on in the process?
    Please let me know if my explanation is not clear?
    Thanks for any help
    Regards
    Sameer

    Thanks for replying.
    I have another Sub Process with Start and End events as Message Events and used Send Task and Receive Task (Implementation : Process Call) in the Main process to invoke the sub process asynchronously.
    Then, the Sub Process is shown in the 'Flow Trace' as child of the main process.
    In this particular one, I used 'Call Activity' to call the sub process.
    So the Audit trail is showing the sub process as a child.
    But what I was trying to say is that the audit trail did not have links to the entries in the 'Event' column (in Enterprice manager - instance window). (like Instance entered activity, Instance left activity etc).
    I was intending to use these links to see the payload information and try to debug if there is any problem with the code.
    The actual problem I was trying to say in the post is that, even after the user responds to the activity (User Task - Approval) in the Sub process,
    the audit trail is not proceeding further.
    In the Sub process definition, after the user task, there is End with none implementation.
    Hope it is clear now.
    Thanks and Regards
    Sameer

  • 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

  • Timeout error calling a Business Process from another Business Process

    Hi to all,
    How can I call a Business Process (BP2) from another Business Process (BP1) and wait for the response before other things are performed? I'm trying to call from BP1 in a synchronous step the process BP2; the first step of BP2 is an Open S/A Bridge and, after a transformation, a Close S/A Bridge, but no response returns to BP1 till a timeout error.
    Thank you very much,
    Antonio

    I did some changes and the error now I am getting is,
    ===========================================================
    Error : null oracle.jsp.JspServlet.internalService(JspServlet.java:186)oracle.jsp.JspServlet.service(JspServlet.java:156)javax.servlet.http.HttpServlet.service(HttpServlet.java:588)org.apache.jserv.JServConnection.processRequest(JServConnection.java:456)org.apache.jserv.JServConnection.run(JServConnection.java:294)java.lang.Thread.run(Thread.java:534)
    Error : oa_html._Text__Button__Lat._jspService(_Text__Button__Lat.java:712)oracle.jsp.runtime.HttpJsp.service(HttpJsp.java:119)oracle.jsp.app.JspApplication.dispatchRequest(JspApplication.java:417)oracle.jsp.JspServlet.doDispatch(JspServlet.java:267)oracle.jsp.JspServlet.internalService(JspServlet.java:186)
    ============================================================
    Does the middle tier need to be bounced?
    Thanks

  • Please help with executing a java program from another java program

    Hi, I have tried to execute a very simple java program which is printed out "Hello world" from another java gui program when the user click on the "START" button. However, I don't receive any print out on the terminal when they click it. These two programs are being developed in Unix environment. Here is the code that I am trying to use.
    Runtime r = Runtime.getRuntime();
    r.exec("java HelloWorld");
    p.s. HelloWorld is java class of the HelloWorld.java

    I think you have to luanch your MS Prompt first before executing the command.

  • How to call inner class method in one java file from another java file?

    hello guyz, i m tryin to access an inner class method defined in one class from another class... i m posting the code too wit error. plz help me out.
    // test1.java
    public class test1
         public test1()
              test t = new test();
         public class test
              test()
              public int geti()
                   int i=10;
                   return i;
    // test2.java
    class test2
         public static void main(String[] args)
              test1 t1 = new test1();
              System.out.println(t1.t.i);
    i m getting error as
    test2.java:7: cannot resolve symbol
    symbol : variable t
    location: class test1
              System.out.println(t1.t.geti());
    ^

    There are various ways to define and use nested classes. Here is a common pattern. The inner class is private but implements an interface visible to the client. The enclosing class provides a factory method to create instances of the inner class.
    interface I {
        void method();
    class Outer {
        private String name;
        public Outer(String name) {
            this.name = name;
        public I createInner() {
            return new Inner();
        private class Inner implements I {
            public void method() {
                System.out.format("Enclosing object's name is %s%n", name);
    public class Demo {
        public static void main(String[] args) {
            Outer outer = new Outer("Otto");
            I junior = outer.createInner();
            junior.method();
    }

  • Launching a java application from another java application

    Hi,
    I'm facing an interesting challenge :-)
    Inside a Java application, I want to start another java application.
    Possible solutions in my list :
    1. Using jakarta commons launcher.
    2. Runtime.exec (make the code platform dependent).
    3. Starting the main method of the other app by create a new Thread inside the current app
    4. I know people did this by calling an ant target from the java application but I don't have
    any sample code, I appreciate any sample code for it.
    Thanks,
    Ali Salehi

    That is an iteresting challenge :)Don't be mean; he's polite, done some investigation and taken the trouble to be clear. The question, presumably, is "has anyone got a different solution or a preference as to which of these is the best?"
    In which case, my advice would be to say that invoking main in a separate thread is fundamentally different from Runtime.exec() because the former would run in the same JVM. Is this what you want? If one app has the other on its classpath then do they need to be separate apps? Could they be modules of a single app?

  • Starting New process (continous) from another java process

    Hi,
    I am running into a trouble in starting a new java process (continous process it is like daemon process ) from another java process.
    Eg;
    Caller.java runs on one JVM instance, from this Caller.java i need to start a daemon java process ConnectionManager.java (My caller.java should have to know whether ConnectionManager was successfully started as a seperate java process or not)
    Also Caller.java has to stop ConnectionManager.java(which is running as seperate process)
    Any help would be appeciated.
    Thank you very much.

    First of all the design is unusual. Your issue is basically intercommunication between two processes written in java. There are various ways to do that:
    1. Use Persistent system(File/Database) : Easiest but have external dependency.
    2. Use RPC calls both JVM,s little bit complex.
    3. Run new JVM in debug mode and connect on bootstrap port.
    4. Communicate using Sockets.
    Whatever suits you...

  • Calling Java Application from another

    How can i call a Java Application from another java App.
    eg., If my Java application is called MyApp and i would like call another java application from within it.
    One way could be by using "System". I would like to know if there is any other method and is portable.
    Thanks in advance.

    hi,
    it works and not!
    if you start an other class with a command like this the 2nd prog/class terminates too if you terminate the caller-class!
    dear
    oliver scorp

  • How to list all OS processes from a java program

    I want to list/kill all OS processes from a java program, or a part from all processes according to a filter on a name of process.
    a similar functionality is ps in Unix or taskkill in Windows XP.
    Thanks!

    Hi,
    I was looking for such lib, but finally I decided to accomplish the job with my fingers end ;-). It maigh be helful for u guys:
    // is written for x based OSs
    private static void killProcess(Process process) {
    if (process == null)
    return;
    process.destroy();
    private static void closeProcessStreams(Process process) {
    try {
    process.getErrorStream().close();
    } catch (IOException eyeOhEx) {
    private static void listPHPs() {
    Process proc = null;
    Runtime rt = Runtime.getRuntime();
    int exitVal = 0;
    try {     
    proc = rt.exec(" ps -C php"); // here use ur filter. issue "man ps" in linux for more info
    catch (Exception ex) {
    System.out.println(ex.getMessage());
    killProcess(proc);
    return;
    try {
    // process the return list of ur command
    InputStream stdReturnStr = proc.getInputStream();
    InputStreamReader isr = new InputStreamReader(stdReturnStr);
    BufferedReader br = new BufferedReader(isr);
    String line = null;
    String returnMsg = "";
    boolean firstLine = true;
    int[] allPIDs = new int[100]; // finally we have an array of PIDs
    int PIDCount = 0;
    while ( (line = br.readLine()) != null) {
    if (!firstLine){ // the first line is title, ignore it
    returnMsg += line + "\n";
    String PID = line.trim().split(" ")[0];
    System.out.println(PID);
    try{
    allPIDs[PIDCount] = Integer.parseInt(PID);
    PIDCount++;
    }catch(Exception ex){           
    else
    firstLine = false;
    System.out.println(returnMsg);
    catch (Exception t) {
    System.out.println(t.getMessage());
    killProcess(proc);
    return;
    try {
    exitVal = proc.waitFor();
    catch (Exception t) {
    System.out.println(t.getMessage());
    killProcess(proc);
    return;
    closeProcessStreams(proc);
    Thats it!

  • Not able to execute one Java program from another one via. exec()

    Hi,
    I am new to this forum, so I might be asking a very trivial quetion.
    My program Ap1 is :
    class Ap1
    public static void main(String a[]) throws Exception
    Runtime rt=Runtime.getRuntime();
    Process p=null;
    p=rt.exec("javac,Pr.java");
    Runtime.getRuntime().exec("javac,Pr.java");
    When I run the above program, I get below error at the line 7(bold one):
    D:\batchwe>javac Ap1.java
    D:\batchwe>java Ap1
    Exception in thread "main" java.io.IOException: CreateProcess: javac,Pr.java err
    or=2
    at java.lang.ProcessImpl.create(Native Method)
    at java.lang.ProcessImpl.<init>(ProcessImpl.java:81)
    at java.lang.ProcessImpl.start(ProcessImpl.java:30)
    at java.lang.ProcessBuilder.start(ProcessBuilder.java:451)
    at java.lang.Runtime.exec(Runtime.java:591)
    at java.lang.Runtime.exec(Runtime.java:429)
    at java.lang.Runtime.exec(Runtime.java:326)
    at Ap1.main(Ap1.java:7)
    Path is set as below(which seems correct):
    D:\batchwe>path
    PATH=C:\Program Files\Java\jdk1.5.0_05\bin
    I am just wondering how to call one Java program from another one?!
    Please help.
    thanks
    Rashmi

    Hi diptaPB,
    Thanks for your suggestion.
    Here is how I tried it again, but not getting the desired output:
    Class Pr looks like below -->
    class Pr
    public static void main(String a[])
    System.out.println("hi from process");
    When I run 'Pr' from command prompt, i get the desired output:
    D:\batchwe>java Pr
    hi from process
    However, when I call 'Pr' from another program Ap2.java, it seems that it does not call 'Pr':
    class Ap2
    public static void main(String a[]) throws Exception
    Runtime rt=Runtime.getRuntime();
    Process p=null;
    String[] cmd=new String[2];
    cmd[0]="javac";
    cmd[1]="Pr.java";
    p=rt.exec("cmd");
    D:\batchwe>javac Ap2.java
    D:\batchwe>java Ap2
    ************* no output appears here***********************
    Looking forward for your help.
    regards
    Rashmi

  • Calling another java class from a java class

    Hi Friends,
    I have a class tht works in 2 modes,depending upon which mode i am passing (gui or text) on the command line eg:
    java myclass [mode]
    I want to call this command from another java class,and i wrote this code:
    try
             Process theProcess =
                Runtime.getRuntime().exec("java myclass  "+args[0]);
          catch(IOException e)
             System.err.println("Error on exec() method");
             e.printStackTrace();
          }When i pass "gui" it works fine,but when i pass"text", the class completes and nothing shows up on the command prompt window,so can please somebody tell me how to make this work.
    Thanks

    As aniseed just pointed out, you could do something like this:
    import javax.swing.*;
    class Test extends JFrame {
         public Test(String title) {
              this.setTitle(title);
              this.pack();
              this.setSize(300, 300);
              this.setLocationRelativeTo(null);
              this.setDefaultCloseOperation(EXIT_ON_CLOSE);
         public static void main(String[] argv) { new Test(argv[0]).setVisible(true); }
    public class Test2 {
         public static void main(String[] argv) {
              Test.main(argv);
    }Run it by executing this command:
    java Test2 "Title of Frame"See if that's not what you're looking for ...

Maybe you are looking for

  • SIMPLE QUESTION: DEFAULT SETTING FOR STILL CLIP DURATION

    I want to change it from :10 to :05 for stills that cue up in the Viewer window. The sequence needs to be all :05 cuts and I want to streamline this as much as possible. Many, many stills to throw into this sequence, and all the same length. Just not

  • Spotlight Indexing still a problem

    I have read several threads on this and have tried a number of fixes including adding hard drive to privacy section in Spotlight system preferences and then forcing re-index by removing the HD from the privacy section, removing the import filters fro

  • Corrupted Aperture Library: need Help!

    I am running Aperture 3.1.3 and mylibrary seems to be stuck in version 3.1.2 and won't open. When I try to open Aperture I get the error: "Warning: There was an error opening the databasefor the library "[my library]"." It goes straight to this warni

  • Macbook shuts down when low battery instead of going to sleep

    Hi Well basically my laptop shuts itself down instead of going to sleep when my battery gets low. I also do not get the low battery message. My macbook will usually shut down when it gets to approximately 6% of battery life. What should I do? Thanks

  • Can't Find my T61 Warranty on Lenovo Site

    I just bought a new, sealed T61 and went to Lenovo's warranty link to try and find the warranty status.  Neither the Auto Detect nor the manual model/serial number entry features work for my machine!  Has anyone else experienced this?  I'm new so I m