Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
运行时和ProcessBuilder(Java)的替代方案_Java_Runtime_Processbuilder - Fatal编程技术网

运行时和ProcessBuilder(Java)的替代方案

运行时和ProcessBuilder(Java)的替代方案,java,runtime,processbuilder,Java,Runtime,Processbuilder,我感兴趣的是,如果有人知道如何在java应用程序中不使用runtime或ProcessBuilder来运行unix命令,那么您可以使用from library来执行命令,但它在内部使用java.lang.runtime和java.lang.Process 我建议您在运行时使用这个库,因为Apache命令执行API比Java运行时更复杂,并且提供了所有和更多的功能。它还处理退出值。有很多可能的方法;但如果不了解你的动机,我就不能称之为可取的 例如,用C或Perl或任何语言编写一个程序,并让它在套接

我感兴趣的是,如果有人知道如何在java应用程序中不使用runtime或ProcessBuilder来运行unix命令,那么您可以使用from library来执行命令,但它在内部使用
java.lang.runtime
java.lang.Process


我建议您在运行时使用这个库,因为Apache命令执行API比Java运行时更复杂,并且提供了所有和更多的功能。它还处理退出值。

有很多可能的方法;但如果不了解你的动机,我就不能称之为可取的


例如,用C或Perl或任何语言编写一个程序,并让它在套接字上侦听。然后,您的java程序可以连接到套接字并发送一条消息,其中包含要生成的程序的名称、参数等。接收方程序可以继续生成该消息。

执行Unix命令有两种方法:

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


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

    ,这样做的目的是创建java服务器应用程序,该应用程序响应ls、pwd、cd等基本命令。它是否按照此注释中的详细说明处理挂起问题-?