Runtime class in java

旧时模样 提交于 2019-11-29 08:06:51

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")
VonC

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.

Fabian Steeg

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.

Adeel Ansari

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

Naefy
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();

Please see the excellent resource which used to be called javaalmanac.

http://www.exampledepot.com/egs/java.lang/Exec.html

try {
    // Execute a command with an argument that contains a space
    String[] commands = new String[]{"grep", "hello world", "/tmp/f.txt"};
    commands = new String[]{"grep", "hello world", "c:\\Documents and Settings\\f.txt"};
    Process child = Runtime.getRuntime().exec(commands);
 } catch (IOException e) {
 }
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!