如果有人知道如何在不使用java应用程序中的运行时或ProcessBuilder的情况下运行unix命令,我感兴趣
答案 0 :(得分:4)
您可以使用DefaultExecutor库中的Apache Commons Exec执行命令,但内部使用java.lang.Runtime
和java.lang.Process
。
我建议您在Runtime上使用此库,因为Apache Command Execution API更复杂,并且提供了比Java Runtime更多的功能。它还处理退出值。
答案 1 :(得分:0)
有很多可能的方法;但是如果不理解你的动机,我就不能把它们称为任何理想的。
例如,用C或Perl或任何语言编写程序,让它在套接字上侦听。然后,您的java程序可以连接到套接字并发送带有程序名称的消息,以生成,参数等。接收程序可以继续生成它。
答案 2 :(得分:0)
执行Unix命令有两种方法:
java.lang.Runtime
和java.lang.Process
system()
和exec*()
)。不推荐第二种方法:很难做到最终,最终会得到与Runtime.exec()
具有完全相同功能的东西
如果您只需要功能,那么您可以在Java中再次实现这些命令。例如,要实施ls
,请使用File.listFiles()