Runtime class in java

13,093

Solution 1

Assuming that abc.java contains a main method that you want to execute:

Runtime.getRuntime().exec("javac c:\java\abc.java -d c:\java\")
Runtime.getRuntime().exec("java c:\java\abc")

Solution 2

You should use ProcessBuilder instead of Runtime. Basic usage is like:

Process process = new ProcessBuilder(command).start();

You will find more code under the link above. Also see this question.

Solution 3

Do not forget that:

  • you may need to read stdout/stderr of a java program
  • you may have to set/update environment variable and PATH before executing your java command

    CreateProcess: c:\j2sdk1.4.0\bin\helloworld error=2

means Win32's CreateProcess returns a 2 as error code when it cannot find the command you specify; more specifically, when the command does not refer to an executable file on its lookup path.

Look at this SO question for a more complete "Runtime.getRuntime().exec()" code, and also to this snippet.

This code creates a shell (as in Runtime.getRuntime().exec("cmd /K")), in which you write on sdtin whatever command you want to execute.

The interest of this approach is to reuse the shell process to benefit from a previous command: it you execute a 'cd', then execute a 'dir', the latter command would display the content of the directory referenced by the cd command.

The same would be true for PATH settings, just before using javac or java.

Solution 4

String path1 = "f://" + File.separator+username+File.separator+progName; 
Runtime runtime = Runtime.getRuntime();
String command = "javac -classpath " + path + " " + path1;
System.out.println(command);
Process process = runtime.exec(command);
InputStream error = process.getErrorStream();

Solution 5

You mean you want a Java program to run another Java program. This SO thread might be helpful, in that case.

Share:
13,093
Arun
Author by

Arun

Updated on June 04, 2022

Comments

  • Arun
    Arun almost 2 years

    How to execute a java program with the help of Runtime.getRuntime().exec(). For example we shall have the java file path as c:/java/abc.java. Please help me with the code.