如何在Java中创建进程

时间:2010-01-05 12:44:33

标签: java

我想在我的应用程序中创建一个进程。但是在浏览了Java的API后,我仍然没有完全理解它。

基本上我想创建一个多进程应用程序。但是新流程在我的应用程序中是一个类。

我知道有些人可能会问为什么不创建一个帖子?因为该类正在调用matlab代码,所以问题和Java类是Here

有没有办法做到这一点?

5 个答案:

答案 0 :(得分:24)

也许java.lang.Process可以帮到这里..

  

ProcessBuilder.start()Runtime.exec方法创建本机进程并返回Process子类的实例,该实例可用于控制进程并获取有关它的信息。 Process类提供了从进程执行输入,向进程执行输出,等待进程完成,检查进程的退出状态以及销毁(杀死)进程的方法。

答案 1 :(得分:18)

只有一种方法可以在Java中创建进程Runtime.exec() - 基本上它允许您像通过命令行界面一样启动新的JVM。

答案 2 :(得分:8)

如果您想要更精细的控制,可以使用ProcessBuilder - 此类允许您设置环境变量并配置项目的管道(stdoutin,{{1 }})。

配置完成后,您可以根据需要多次调用err以创建新进程(它返回ProcessBuilder#start()的实例)。您可以在这些Process的调用之间更改新流程的配置。

答案 3 :(得分:4)

我想你知道如何创建一个新流程。如果没有,请参阅herehere

现在您需要使用当前的类路径运行java.exe。您可以在系统属性java.class.path中找到此类路径。要找到java.exe,请查看new File( System.getProperty("java.home"), "bin")

如果您遇到此方法的问题,我建议编写一个包装器脚本并使用足够的参数调用它,以便main()中的代码可以决定要调用的实际类。

答案 4 :(得分:0)

我的建议是看一下zt-exec:https://github.com/zeroturnaround/zt-exec

它包装了java.lang.ProcessBuilder和Apache Commons Exec,可以轻松管理进程生命周期。