繁体   English   中英

Java中的运行时类

[英]Runtime class in java

如何在Runtime.getRuntime()。exec()的帮助下执行Java程序。 例如,我们的Java文件路径为c:/java/abc.java。 请帮助我的代码。

假设abc.java包含您要执行的主要方法:

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

不要忘记:

  • 您可能需要阅读Java程序的stdout / stderr
  • 您可能必须在执行Java命令之前设置/更新环境变量和PATH

    CreateProcess:c:\\ j2sdk1.4.0 \\ bin \\ helloworld错误= 2

表示Win32的CreateProcess在找不到您指定的命令时返回2作为错误代码; 更具体地说,当命令在其查找路径上未引用可执行文件时。

查看此SO问题以获取更完整的“ Runtime.getRuntime().exec() ”代码,以及本代码段

此代码创建一个外壳程序(如Runtime.getRuntime().exec("cmd /K") ),您可以在其中用sdtin编写要执行的任何命令。

这种方法的兴趣在于重用Shell进程以从上一个命令中受益:先执行cd ,然后执行dir ,后一个命令将显示cd命令引用的目录的内容。

在使用javacjava之前, PATH设置也是如此。

您应该使用ProcessBuilder而不是运行时。 基本用法如下:

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

您可以在上面的链接下找到更多代码。 也看到这个问题

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

您的意思是您希望一个Java程序运行另一个Java程序。 在这种情况下, 此SO线程可能会有所帮助。

请查看曾经被称为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) {
 }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM