Runtime和ProcessBuilder的替代品(Java)

时间:2012-08-16 13:07:04

标签: java runtime processbuilder

如果有人知道如何在不使用java应用程序中的运行时或ProcessBuilder的情况下运行unix命令,我感兴趣

3 个答案:

答案 0 :(得分:4)

您可以使用DefaultExecutor库中的Apache Commons Exec执行命令,但内部使用java.lang.Runtimejava.lang.Process

我建议您在Runtime上使用此库,因为Apache Command Execution API更复杂,并且提供了比Java Runtime更多的功能。它还处理退出值。

答案 1 :(得分:0)

有很多可能的方法;但是如果不理解你的动机,我就不能把它们称为任何理想的。

例如,用C或Perl或任何语言编写程序,让它在套接字上侦听。然后,您的java程序可以连接到套接字并发送带有程序名称的消息,以生成,参数等。接收程序可以继续生成它。

答案 2 :(得分:0)

执行Unix命令有两种方法:

  1. 您可以使用java.lang.Runtimejava.lang.Process
  2. 您可以使用JNI / JNA访问共享库。因此,您可以使用它来访问操作系统级别命令以在Unix上创建进程(system()exec*())。
  3. 不推荐第二种方法:很难做到最终,最终会得到与Runtime.exec()具有完全相同功能的东西

    如果您只需要功能,那么您可以在Java中再次实现这些命令。例如,要实施ls,请使用File.listFiles()