java - 使用 processBuilder 执行命令

标签 java cmd processbuilder

对于我的应用程序,我使用 SUMO(模拟特定路线上的流量的应用程序)。

当使用正确的参数启动该程序时,它将生成输出。但启动此模拟必须从命令行完成。 所以我想用 processBuilder 来解决这个问题,但这不起作用。我发现很多人对这个 processBuilder 有问题,但在阅读如何用它执行我的命令行后我不明白。

需要执行的命令是:

"sumo -c \"" + path + FILENAME_CONFIG + "\" --netstate-dump " + ouputPath"

Sumo 位于我的桌面上

"C:\Users\Samee\Desktop\SUMO\sumo-0.17.0\bin"

现在我通过将上述信息放入bat文件并运行bat文件解决了这个问题。 (使用 Cd .. 导航并设置路径时。 我如何运行bat文件:

Process rt = Runtime.getRuntime().exec("cmd /c start " + generator.getPath() + Generator.FILENAME_BAT);

但我需要知道模拟何时停止模拟。 这可以用 processBuilder 来解决吗?

喜欢:

ProcessBuilder builder = new ProcessBuilder("sumo -c \"" + path + FILENAME_CONFIG + "\" --netstate-dump " + ouputPath); 

我如何知道 ProcessBuilder 是否已完成执行?

最佳答案

使用下面的代码为您的进程提供命令行参数。提供 Sting 列表,Process Builder 能够从提供的列表中解析参数

final List<String> commands = new ArrayList<String>();                

commands.add("sumo");//commands.add("C:\Users\Samee\Desktop\SUMO\sumo-0.17.0\bin\sumo");
commands.add(" -c "); 
commands.add(path);
commands.add(FILENAME_CONFIG);
commands.add("--netstate-dump");
commands.add(ouputPath);
ProcessBuilder pb = new ProcessBuilder(commands);

关于java - 使用 processBuilder 执行命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16749801/

相关文章:

java - 如何限制访问实例的请求数量?

excel - 从命令行打开 Excel 文件不 protected View

html - NodeJs 在网络浏览器上显示

java - ProcessBuilder 向命令行添加额外的引号

java - 包含多次使用 View 的自定义 xml 相对布局

java - 如何从方法级别范围检索值?

windows - 使用命令行创建在特定用户登录时运行的计划任务

java - 如何从 java 应用程序运行 Windows 命令提示符?

java - 为什么 Java Processbuilder 运行命令比 Python Subprocess.check_output 慢 4000 倍

同一项目和场景生成器中的 JavaFX 自定义组件