gpt4 book ai didi

java - Hands ProcessBuilder 在java中 Unix操作系统中的多线程

转载 作者:太空宇宙 更新时间:2023-11-04 13:47:45 26 4
gpt4 key购买 nike

使用unix操作系统,我尝试使用java多线程中的ProcessBuilder运行.sh文件(.sh文件很常见,但每个线程的参数不同)。代码如下。

public class CLMScriptExe2 implements Runnable {
final String scriptFileName = "/apps/orangd1/temp/CLM/CLM_PCF_Jenkins.sh";
private String AppName;

public CLMScriptExe2(String appName) {
AppName = appName;
}

@Override
public void run() {
try {
ProcessBuilder processBuilder = new ProcessBuilder(scriptFileName, AppName);
Process process = processBuilder.start();
BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));

String line;
while ((line = reader.readLine()) != null) {
//String line;
System.out.println(line);
}
try {
process.waitFor();
} catch (InterruptedException e) {
System.out.println(e.getMessage());
}
} catch (IOException e) {
System.out.println(e.getMessage());
}
System.out.println("ending executeScript--Testing");
}

public static void main(String[] args) {
CLMScriptExe2 c1 = new CLMScriptExe2("appOne");
Thread t1 = new Thread(c1);
t1.start();

CLMScriptExe2 c2 = new CLMScriptExe2("appTwo");
Thread t2 = new Thread(c2);
t2.start();

CLMScriptExe2 c3 = new CLMScriptExe2("appThree");
Thread t3 = new Thread(c3);
t2.start();
}
}

Java 程序在 processBuilder.start() 之后终止。

编辑:在这个 processBuilder.start() 之后,没有日志,没有错误,没有异常,什么也没有,它只是终止了所有线程。

有什么解决办法吗?

最佳答案

有点晚了,但也许这会对其他人有所帮助。您正在启动 3 个线程,但没有关闭任何丢失的 ie:

 t1.join();

等我怀疑您遇到了 ConcurrentModificationException 错误。

关于java - Hands ProcessBuilder 在java中 Unix操作系统中的多线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30664362/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com