【发布时间】:2020-04-24 19:26:59
【问题描述】:
我正在尝试从 java 文件运行异步 bash 命令并等待它完成,然后再继续执行 java 代码。
此时我已经尝试像这样使用Callable:
class AsyncBashCmds implements Callable{
@Override
public String call() throws Exception {
try {
String[] cmd = { "grep", "-ir", "<" , "."};
Runtime.getRuntime().exec(cmd);
return "true"; // need to hold this before the execution is completed.
} catch (Exception e) {
return "false";
}
}
}
我这样称呼它:
ExecutorService executorService = Executors.newFixedThreadPool(1);
Future<String> future = executorService.submit(new runCPPinShell(hookResponse));
String isFinishedRunningScript = future.get();
谢谢!!!
【问题讨论】:
-
出了什么问题:你说你正在尝试这个命令。但是你不说怎么回事? (似乎)什么都没有发生吗?您是否收到错误消息/代码? bash 命令运行但做错了吗?
-
代码格式化,添加标签
-
命令已执行但java代码不等待它完成
标签: java bash asynchronous concurrency execution