Process pro = null;
Runtime rt = Runtime.getRuntime();
try {
pro = rt.exec("java -jar " + System.getProperty("user.dir") +
"/client.jar");
} catch (IOException ex) {
ex.printStackTrace();
}
我在一个工程里通过上面代码调用了那个JAR包,JAR包里是一个SOCKET通信程序,一开始JAR包里的程序执行了,但是不知道为什么执行到某个地方就卡住了,把这个工程关了那个程序又会继续执行了?高手来帮帮忙啊,谢谢了!!!
7 个解决方案
#1
我在JDK的Process 类里看到这么一段话:因为有些本机平台仅针对标准输入和输出流提供有限的缓冲区大小,如果读写子进程的输出流或输入流迅速出现失败,则可能导致子进程阻塞,甚至产生死锁。
我想应该是发生死锁了不知道怎么解决啊
我想应该是发生死锁了不知道怎么解决啊
#2
路过,友情up...
#3
#4
再开一个线程来处理
#5
友情up!
#6
最好是起一个新的线程去处理这种问题
这样即使出现了问题,整个程序也不会有很大的影响
这样即使出现了问题,整个程序也不会有很大的影响
#7
已解决谢谢
#1
我在JDK的Process 类里看到这么一段话:因为有些本机平台仅针对标准输入和输出流提供有限的缓冲区大小,如果读写子进程的输出流或输入流迅速出现失败,则可能导致子进程阻塞,甚至产生死锁。
我想应该是发生死锁了不知道怎么解决啊
我想应该是发生死锁了不知道怎么解决啊
#2
路过,友情up...
#3
#4
再开一个线程来处理
#5
友情up!
#6
最好是起一个新的线程去处理这种问题
这样即使出现了问题,整个程序也不会有很大的影响
这样即使出现了问题,整个程序也不会有很大的影响
#7
已解决谢谢