Runtime rt = Runtime.getRuntime();
Process proc = rt.exec("ping localhost");
Code language: Java (java)import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
public class RuntimeExec {
public StreamWrapper getStreamWrapper(InputStream is, String type){
            return new StreamWrapper(is, type);
}
private class StreamWrapper extends Thread {
    InputStream is = null;
    String type = null;          
    String message = null;
    public String getMessage() {
            return message;
    }
    StreamWrapper(InputStream is, String type) {
        this.is = is;
        this.type = type;
    }
    public void run() {
        try {
            BufferedReader br = new BufferedReader(new InputStreamReader(is));
            StringBuffer buffer = new StringBuffer();
            String line = null;
            while ( (line = br.readLine()) != null) {
                buffer.append(line);//.append("\n");
            }
            message = buffer.toString();
        } catch (IOException ioe) {
            ioe.printStackTrace();  
        }
    }
}
 
// this is where the action is
public static void main(String[] args) {
            Runtime rt = Runtime.getRuntime();
            RuntimeExec rte = new RuntimeExec();
            StreamWrapper error, output;
            try {
                        Process proc = rt.exec("ping localhost");
                        error = rte.getStreamWrapper(proc.getErrorStream(), "ERROR");
                        output = rte.getStreamWrapper(proc.getInputStream(), "OUTPUT");
                        int exitVal = 0;
                        error.start();
                        output.start();
                        error.join(3000);
                        output.join(3000);
                        exitVal = proc.waitFor();
                        System.out.println("Output: "+output.message+"\nError: "+error.message);
            } catch (IOException e) {
                        e.printStackTrace();
            } catch (InterruptedException e) {
                        e.printStackTrace();
            }
            }
}
Code language: Java (java)Java URL Encoder/Decoder Example - In this tutorial we will see how to URL encode/decode…
Show Multiple Examples in OpenAPI - OpenAPI (aka Swagger) Specifications has become a defecto standard…
Local WordPress using Docker - Running a local WordPress development environment is crucial for testing…
1. JWT Token Overview JSON Web Token (JWT) is an open standard defines a compact…
GraphQL Subscription provides a great way of building real-time API. In this tutorial we will…
1. Overview Spring Boot Webflux DynamoDB Integration tests - In this tutorial we will see…
View Comments
see ProcessBuilder
http://java.sun.com/j2se/1.5.0/docs/api/java/lang/ProcessBuilder.html
What i liked is the fact that i can convert it to print the output as the native command is being executed, by adding a output statement to the while loop in the StreamWrapper
However, if you try some other commands, like "date" or "dir" you will get a file not found IOException. some commands work and other don't...
Doesn't work with JVM7.
It doesn't work with me too.. :(
Hi Abhinav,
Your solution was amazing. I was trying to run a python script using a runtime environment within a Servlet. It was getting timed out at proc.waitFor()
Process proc = rt.exec("C:/Python27/python ./dev/src/__init__.py");
I used jython way of doing it but all are working in a standalone application but not through weblogic. Using this solution I could get the output within the console and I am able to use the output now. I was hunting for it from 4 days..
Thanks a lot...You rock..
Hello. This is a very wonderful code. However, i had a problem on showing the applications that do not specify its version. The output is not the same as what you see on the control panel.
This Is a very help me...
thk!!!
Why don't you just save the output in a file by just redirecting the the command line and just get data from the file.If your only concern is to view the output of the execution ?
thank a million for the code
i have to run 3 seperate commands on my terminal to get my output... should i create 3 different process for this in one pgm?
else how should i modify ur code to accomadate my requirement.
thank u!!!!!!!!!